| Matching Statements |
| File1 Line# |
File2 Line# |
Statement |
| 1 | 1 | VERSION EQU 14 |
| 4 | 4 | BIAS EQU 703H |
5 90 1113 | 5 90 1113 | ORG 100H |
| 6 | 6 | STACK EQU 200H |
| 7 | 7 | BDOS EQU 0005H |
| 8 | 8 | PRHT EQU 9 |
| 9 | 9 | MODULE EQU 200H |
11 223 1389 | 11 223 1389 | LXI B, 0 |
12 1344 1372 1628 1691 1889 1982 2041 2059 2068 2117 2610 | 12 1344 1372 1628 1691 1889 1982 2041 2059 2068 2117 2610 | JMP START |
| 14 | 14 | SIGNON: |
| 16 | 16 | DB VERS ION/10+ , |
| 17 | 17 | DB VERSION MOD 10 + , |
18 1261 | 18 1261 | START: |
| 19 | 19 | LXI SP, STACK |
20 21 139 359 372 1321 1393 1394 1402 1568 1841 2004 2073 2134 2198 2424 2446 2520 2691 2706 2747 2774 | 20 21 139 359 372 1321 1393 1394 1402 1568 1841 2004 2073 2134 2198 2424 2446 2520 2691 2706 2747 2774 | PUSH B |
| 22 | 22 | LXI D, SIGNON |
| 23 | 23 | MVI C, PRNT |
24 144 794 | 24 144 794 | CALL BDOS |
25 49 147 368 381 1327 1409 1497 1556 1599 1809 1859 1868 2015 2108 2138 2206 2428 2483 2684 2705 2746 2786 | 25 49 147 368 381 1327 1409 1497 1556 1599 1809 1859 1868 2015 2108 2138 2206 2428 2483 2684 2705 2746 2786 | POP B |
| 26 | 26 | LXI H, BDOS+2 |
27 40 65 227 670 800 1449 1570 1576 1587 1709 1713 1717 1876 1906 2086 2156 2162 2353 2390 2410 2461 2480 2524 2533 2545 2617 | 27 40 65 227 670 800 1449 1570 1576 1587 1709 1713 1717 1876 1906 2086 2156 2162 2353 2390 2410 2461 2480 2524 2533 2545 2617 | MOV A, M |
28 396 844 846 898 1339 1358 1364 1390 1399 1423 1426 1543 1546 1748 1897 1920 1963 1965 2012 2538 | 28 396 844 846 898 1339 1358 1364 1390 1399 1423 1426 1543 1546 1748 1897 1920 1963 1965 2012 2538 | DCR A |
| 29 | 29 | SUB B |
30 812 967 1801 1864 | 30 812 967 1801 1864 | MOV D, A |
| 31 | 31 | MVI E, 0 |
32 140 323 653 1320 1843 2072 2133 2199 2445 2521 2712 2741 2754 2759 2773 | 32 140 323 653 1320 1843 2072 2133 2199 2445 2521 2712 2741 2754 2759 2773 | PUSH D |
| 34 | 34 | LXI H, MODULE |
35 1694 | 35 1694 | MOVE: |
36 54 490 637 703 1583 1866 2017 2392 2431 2547 2716 | 36 54 490 637 703 1583 1866 2017 2392 2431 2547 2716 | MOV A, B |
37 55 507 538 615 | 37 55 507 538 615 | ORA C |
| 38 | 38 | JZ RELOC |
39 59 | 39 59 | DCX B |
41 78 1588 1598 2040 2546 | 41 78 1588 1598 2040 2546 | STAX D |
42 80 330 349 408 1467 1782 2334 2753 2758 | 42 80 330 349 408 1467 1782 2334 2753 2758 | INX D |
43 66 187 199 263 299 329 340 407 443 671 717 738 818 825 832 1284 1451 1575 1577 1579 1590 1592 1594 1642 1658 1675 1685 1702 1712 1716 1784 1828 1880 1930 1991 2066 2163 2258 2260 2283 2285 2299 2384 2430 2463 2473 2540 2542 2544 2556 2619 2621 2637 2646 2687 2689 2697 | 43 66 187 199 263 299 329 340 407 443 671 717 738 818 825 832 1284 1451 1575 1577 1579 1590 1592 1594 1642 1658 1675 1685 1702 1712 1716 1784 1828 1880 1930 1991 2066 2163 2258 2260 2283 2285 2299 2384 2430 2463 2473 2540 2542 2544 2556 2619 2621 2637 2646 2687 2689 2697 | INX H |
| 44 | 44 | JMP MOVE |
| 46 | 46 | RELOC: |
48 84 146 335 348 669 1328 1408 1496 1532 1555 1613 1862 2064 2109 2139 2205 2484 2711 2740 2752 2757 2787 | 48 84 146 335 348 669 1328 1408 1496 1532 1555 1613 1862 2064 2109 2139 2205 2484 2711 2740 2752 2757 2787 | POP D |
50 141 1232 1234 1238 1239 1255 1319 1386 1398 1406 1492 1494 1526 1528 1561 1611 1614 1738 1752 1770 1803 1842 1902 1907 1918 1961 2062 2071 2132 2154 2200 2286 2346 2425 2518 2529 2638 2690 2775 | 50 141 1232 1234 1238 1239 1255 1319 1386 1398 1406 1492 1494 1526 1528 1561 1611 1614 1738 1752 1770 1803 1842 1902 1907 1918 1961 2062 2071 2132 2154 2200 2286 2346 2425 2518 2529 2638 2690 2775 | PUSH H |
51 232 | 51 232 | MOV H, D |
| 53 | 53 | REL0: |
| 56 | 56 | JZ ENDREL |
60 249 296 657 1501 1812 | 60 249 296 657 1501 1812 | MOV A, E |
| 61 | 61 | ANI 111B |
| 62 | 62 | JNZ REL1 |
68 72 1434 1622 2232 2274 | 68 72 1434 1622 2232 2274 | MOV L, A |
| 69 | 69 | REL1: |
70 760 1432 1454 1469 1515 1724 1926 1955 2024 2037 2056 2215 2230 | 70 760 1432 1454 1469 1515 1724 1926 1955 2024 2037 2056 2215 2230 | MOV A, L |
| 73 | 73 | JNC REL2 |
76 326 405 413 438 1465 1595 1781 2331 | 76 326 405 413 438 1465 1595 1781 2331 | LDAX D |
| 77 | 77 | ADD H |
| 79 | 79 | REL2: |
| 81 | 81 | JMP REL0 |
| 83 | 83 | ENDREL: |
| 85 | 85 | MVI L, 0 |
| 86 | 86 | LXI D, BIAS |
87 239 346 1281 1282 1436 1616 1626 1767 2085 2350 2374 2378 2643 2644 | 87 239 346 1281 1282 1436 1616 1626 1767 2085 2350 2374 2378 2643 2644 | DAD D |
91 1126 | 91 1126 | BDOS EQU $+1106H |
101 1122 | 101 1122 | FALSE EQU 0 |
102 1123 | 102 1123 | TRUE EQU NOT FALSE |
104 1125 | 104 1125 | DEMON EQU $+700H |
| 106 | 106 | JLOC1 EQU 5H |
| 108 | 108 | GETBUFF EQU DEMON+9H |
| 109 | 109 | GNC EQU DEMON+0CH |
| 111 | 111 | CI EQU GNC |
| 112 | 112 | CONO EQU 2 |
113 1148 | 113 1148 | CHKIO EQU 11 |
115 1167 | 115 1167 | CR EQU 0DH |
| 116 | 116 | LF EQU 0AH |
| 117 | 117 | TAB EQU 09H |
| 119 | 119 | MODLOC: |
| 120 | 120 | JMP DEMON |
| 121 | 121 | JMP INIT |
| 122 | 122 | JMP DISENT |
| 123 | 123 | JMP ASMEN |
| 124 | 124 | PC: |
125 127 131 133 | 125 127 131 133 | DS 2 |
| 126 | 126 | MPC: |
| 128 | 128 | PAGM: |
| 129 | 129 | DS 1 |
| 130 | 130 | TPC: |
| 132 | 132 | OLDSP: |
| 137 | 137 | CO: |
142 1549 | 142 1549 | MOV E, C |
| 143 | 143 | MVI C, CONO |
145 1329 1533 1558 1619 1741 1765 1774 1802 1867 1905 1912 1927 1970 2110 2140 2167 2204 2289 2355 2427 2509 2551 2685 2800 | 145 1329 1533 1558 1619 1741 1765 1774 1802 1867 1905 1912 1927 1970 2110 2140 2167 2204 2289 2355 2427 2509 2551 2685 2800 | POP H |
152 2238 | 152 2238 | DELIM: |
| 155 | 155 | CPI TAB |
159 177 451 1271 1650 1672 1913 1979 2000 2239 2300 2316 2322 2327 | 159 177 451 1271 1650 1672 1913 1979 2000 2239 2300 2316 2322 2327 | CPI CR |
161 2145 2219 | 161 2145 2219 | CPI 7FH |
| 162 | 162 | JZ ASMEN |
165 2191 | 165 2191 | CRLF: |
| 166 | 166 | MVI C, CR |
167 169 702 716 737 740 742 751 763 764 881 886 891 915 923 951 997 | 167 169 702 716 737 740 742 751 763 764 881 886 891 915 923 951 997 | CALL CO |
| 168 | 168 | MVI C, LF |
| 172 | 172 | SCAN: |
| 174 | 174 | SC1: |
175 196 450 | 175 196 450 | CALL CI |
| 176 | 176 | SCAN0: |
178 201 221 361 374 387 393 454 | 178 201 221 361 374 387 393 454 | JZ ERR |
179 197 2276 | 179 197 2276 | CALL DELIM |
| 180 | 180 | JZ SCI |
183 1663 | 183 1663 | MVI C, 4 |
184 193 225 401 | 184 193 225 401 | LXI H, OPCODE |
| 185 | 185 | SC0: |
186 1657 1684 | 186 1657 1684 | MVI M, |
188 200 307 311 350 354 366 379 409 423 518 603 819 826 833 1643 1655 1676 1682 1785 1993 2361 | 188 200 307 311 350 354 366 379 409 423 518 603 819 826 833 1643 1655 1676 1682 1785 1993 2361 | DCR C |
| 189 | 189 | JNZ SCO |
192 375 | 192 375 | MVI C, 5 |
| 194 | 194 | SC2: |
195 406 416 442 1596 1641 1674 1701 1783 1827 1928 2058 | 195 406 416 442 1596 1641 1674 1701 1783 1827 1928 2058 | MOV M, A |
| 198 | 198 | JZ SC3 |
| 202 | 202 | JMP SC2 |
| 204 | 204 | SC3: |
205 619 | 205 619 | LDA OPCODE |
| 209 | 209 | HEX: |
211 2171 2248 | 211 2171 2248 | CPI 10 |
213 2250 | 213 2250 | ADI ( - +10) AND 0FFH |
214 2251 | 214 2251 | CPI 16 |
| 217 | 217 | JMP ERR |
| 219 | 219 | GADDR: |
220 360 373 | 220 360 373 | CALL SCAN |
222 2309 | 222 2309 | LXI D, 0 |
| 224 | 224 | GAD: |
226 735 865 907 942 963 979 991 1811 | 226 735 865 907 942 963 979 991 1811 | DAD B |
| 229 | 229 | JZ GAI |
| 230 | 230 | CALL HEX |
| 231 | 231 | MOV L, E |
233 234 235 236 2269 2270 2271 2272 | 233 234 235 236 2269 2270 2271 2272 | DAD H |
237 1278 1805 2083 2135 2372 2725 | 237 1278 1805 2083 2135 2372 2725 | MOV E, A |
238 1279 2082 2349 2373 2628 2726 | 238 1279 2082 2349 2373 2628 2726 | MVI D, 0 |
241 1517 1700 | 241 1517 1700 | INX B |
242 367 380 424 519 562 635 958 974 986 | 242 367 380 424 519 562 635 958 974 986 | MOV A, C |
243 386 394 563 | 243 386 394 563 | CPI 4 |
| 244 | 244 | JNZ GAO |
| 246 | 246 | CAI: |
| 247 | 247 | MOV B, D |
| 248 | 248 | MOV C, E |
250 331 341 718 2045 | 250 331 341 718 2045 | DCR B |
251 1992 2429 | 251 1992 2429 | INR B |
| 254 | 254 | GBYTE: |
255 431 488 | 255 431 488 | CALL GADDR |
256 365 378 415 422 642 | 256 365 378 415 422 642 | JNZ ERR |
| 259 | 259 | INIT: |
| 260 | 260 | LXI H, JLOCI+1 |
| 261 | 261 | MVI A, MODLOC AND 0FFH |
| 262 | 262 | SUB M |
| 264 | 264 | MVI A, MODLOC SHR 0 |
| 265 | 265 | SBB M |
| 267 | 267 | LXI H, MODLOC |
| 268 | 268 | SHLD JLOC1+1 |
| 275 | 275 | ADJ: |
279 2724 | 279 2724 | ANI 111000B |
| 282 | 282 | ADJ4: |
| 287 | 287 | ANI 110000B |
| 290 | 290 | SEAR2: |
| 293 | 293 | LHLD OPCODE |
| 295 | 295 | SEA0: |
297 301 327 816 823 830 1989 2620 | 297 301 327 816 823 830 1989 2620 | CMP M |
| 298 | 298 | JNZ SEA1 |
300 659 723 840 848 851 861 896 937 953 970 1503 | 300 659 723 840 848 851 861 896 937 953 970 1503 | MOV A, D |
303 305 306 1235 1236 1959 2458 2510 2580 | 303 305 306 1235 1236 1959 2458 2510 2580 | DCX H |
| 304 | 304 | SEA1: |
| 308 | 308 | JNZ SEA0 |
| 315 | 315 | SEAR: |
321 713 | 321 713 | MVI B, 4 |
| 324 | 324 | LXI D, OPCODE |
| 325 | 325 | SE1: |
328 342 | 328 342 | JNZ SE2 |
| 332 | 332 | JNZ SE1 |
| 339 | 339 | SE2: |
| 345 | 345 | LXI D, -8 |
| 351 | 351 | JNZ SEAR |
| 358 | 358 | GETREG: |
362 420 512 | 362 420 512 | MVI C, 8 |
| 363 | 363 | LXI H, SREG |
364 421 | 364 421 | CALL SEAR2 |
| 371 | 371 | GETD: |
| 376 | 376 | LXI H, DREG |
377 460 470 482 496 514 529 544 558 585 599 | 377 460 470 482 496 514 529 544 558 585 599 | CALL SEAR |
| 384 | 384 | GETDR: |
385 391 | 385 391 | CALL GETD |
| 390 | 390 | GETPR: |
392 1489 | 392 1489 | CPI 3 |
| 395 | 395 | PHZ |
| 399 | 399 | GCON: |
| 402 | 402 | LXI D, OPCODE+1 |
403 527 597 | 403 527 597 | MVI C, 2 |
| 404 | 404 | MOP: |
| 410 | 410 | JNZ MOP |
| 419 | 419 | LXI H, CREG |
425 501 520 537 549 592 | 425 501 520 537 549 592 | CALL ADJ |
| 428 | 428 | GCONA: |
429 643 | 429 643 | CALL GCON |
434 644 | 434 644 | ORI 11000000B |
| 437 | 437 | SETMD: |
| 440 | 440 | SETM: |
441 655 757 787 | 441 655 757 787 | LHLD PC |
444 672 1002 | 444 672 1002 | SHLD PC |
| 449 | 449 | GETOP: |
452 806 | 452 806 | JZ GOBACK |
| 453 | 453 | CALL SCAN0 |
| 456 | 456 | CHK0: |
| 457 | 457 | MVI C, 17 |
| 458 | 458 | LXI H, ETAB1 |
| 459 | 459 | LXI D, TABLE |
| 461 | 461 | JNZ CHK1 |
| 464 | 464 | JMP SETMD |
| 467 | 467 | CHK1: |
| 468 | 468 | MVI C, 10 |
| 469 | 469 | LXI H, ETAB2 |
| 471 | 471 | JNZ CHK2 |
474 486 | 474 486 | CALL SETMD |
475 552 589 | 475 552 589 | CALL GBYTE |
476 491 509 539 553 594 616 638 645 | 476 491 509 539 553 594 616 638 645 | JMP SETM |
| 479 | 479 | CHK2: |
480 556 828 | 480 556 828 | MVI C, 6 |
| 481 | 481 | LXI H, ETAB3 |
| 483 | 483 | JNZ CHK3 |
| 487 | 487 | 0P2: |
489 551 573 634 636 | 489 551 573 634 636 | CALL SETM |
| 493 | 493 | CHK3: |
494 542 583 | 494 542 583 | MVI C, 1 |
495 946 | 495 946 | LXI H, PMOV |
| 497 | 497 | JNZ CHK4 |
500 506 536 548 | 500 506 536 548 | CALL GETREG |
502 521 569 691 1861 2539 | 502 521 569 691 1861 2539 | MOV B, A |
| 503 | 503 | MVI C, 01000000B |
| 505 | 505 | OP1: |
508 572 1860 | 508 572 1860 | ORA B |
| 511 | 511 | CHK4: |
| 513 | 513 | LXI H, ETAB5 |
| 515 | 515 | JNZ CHK5 |
| 523 | 523 | MVI C, 10000000B |
| 524 | 524 | JMP OP1 |
| 526 | 526 | CHK5: |
528 926 | 528 926 | LXI H, PDCR |
| 530 | 530 | JNZ CHK6 |
533 534 535 | 533 534 535 | INR C |
| 541 | 541 | CHK6: |
543 918 | 543 918 | LXI H, PMVI |
| 545 | 545 | JNZ CHK7 |
| 550 | 550 | ORI 110B |
| 555 | 555 | CHK7: |
| 557 | 557 | LXI H, ETAB7 |
| 559 | 559 | JNZ CHK8 |
| 564 | 564 | JC IN0 |
| 567 | 567 | ADI 5 |
| 568 | 568 | IN0: |
| 570 | 570 | CALL GETDR |
571 614 | 571 614 | CALL ADJ4 |
| 575 | 575 | ANI 11001111B |
| 576 | 576 | CPI 1 |
| 578 | 578 | JMP OP2 |
| 582 | 582 | CHK8: |
584 874 | 584 874 | LXI H, PRST |
| 586 | 586 | JNZ CHK9 |
| 590 | 590 | CPI B |
| 591 | 591 | JNC ERR |
| 593 | 593 | ORI 11000111B |
| 596 | 596 | CHK9: |
| 598 | 598 | LXI H, PPOP+4 |
| 600 | 600 | JNZ CHK10 |
| 604 | 604 | JNZ PP0 |
| 607 | 607 | MVI C, 11000001B |
| 608 | 608 | JMP PP1 |
| 610 | 610 | PP0: |
| 611 | 611 | MVI C, 110001018 |
| 612 | 612 | PP1: |
| 613 | 613 | CALL GETPR |
| 618 | 618 | CHK10: |
| 621 | 621 | JNZ CHK11 |
622 630 | 622 630 | CALL GCONA |
| 624 | 624 | ORI 010B |
| 625 | 625 | JMP FADDR |
| 627 | 627 | CHK11: |
| 629 | 629 | JNZ CHK12 |
| 631 | 631 | ORI 100B |
| 633 | 633 | FADDR: |
| 640 | 640 | CHK12: |
| 651 | 651 | RDBYTE: |
| 652 | 652 | LHLD MPC |
658 1621 | 658 1621 | SUB L |
660 1624 | 660 1624 | SBB H |
| 661 | 661 | JNC RD0 |
664 999 1019 | 664 999 1019 | LHLD OLDSP |
| 668 | 668 | RD0: |
| 675 | 675 | RGPRNT: |
676 782 785 2764 | 676 782 785 2764 | INR A |
| 677 | 677 | ANI B7 |
| 678 | 678 | CPI B6 |
| 679 | 679 | JC RGP1 |
| 680 | 680 | ADI 03 |
| 681 | 681 | RGP1: |
| 682 | 682 | CPI 05 |
| 683 | 683 | JC RGP2 |
| 684 | 684 | ADI 02 |
| 685 | 685 | RGP2: |
| 686 | 686 | ADI 41H |
687 701 709 733 863 906 940 961 977 989 1810 | 687 701 709 733 863 906 940 961 977 989 1810 | MOV C, A |
688 710 721 743 753 | 688 710 721 743 753 | JMP CO |
| 690 | 690 | DECODE: |
692 1853 | 692 1853 | ANI 0F0H |
697 705 | 697 705 | ADI 90H |
699 707 | 699 707 | ACI 40H |
704 897 2185 2188 | 704 897 2185 2188 | ANI 0FH |
| 712 | 712 | PRINT: |
| 714 | 714 | P1: |
715 736 739 2351 2778 | 715 736 739 2351 2778 | MOV C, M |
| 719 | 719 | JNZ P1 |
720 741 | 720 741 | MVI C, 20H |
| 722 | 722 | XTRACT: |
724 938 | 724 938 | ANI 38H |
| 730 | 730 | CCPRNT: |
731 746 867 876 920 932 948 | 731 746 867 876 920 932 948 | CALL XTRACT |
732 904 905 959 960 975 976 987 988 | 732 904 905 959 960 975 976 987 988 | ADD A |
| 734 | 734 | LXI H, CCODE |
| 745 | 745 | RPPRNT: |
| 747 | 747 | ANI B6 |
748 868 | 748 868 | CPI 06 |
| 749 | 749 | JNZ RGPRNT |
| 750 | 750 | MVI C, 53H |
| 752 | 752 | MVI C, 50H |
| 755 | 755 | PRPC: |
756 995 1263 1441 1523 1615 1883 1901 2005 2114 2422 | 756 995 1263 1441 1523 1615 1883 1901 2005 2114 2422 | CALL CRLF |
758 1472 1509 1726 1923 2021 2053 2213 2233 2575 2769 | 758 1472 1509 1726 1923 2021 2053 2213 2233 2575 2769 | MOV A, H |
759 761 877 969 971 983 | 759 761 877 969 971 983 | CALL DECODE |
762 996 | 762 996 | MVI C, |
| 767 | 767 | DISENT: |
| 768 | 768 | LX1 H, 0 |
770 1008 | 770 1008 | SHLD OLDSP |
771 1009 | 771 1009 | CALL INIT |
| 774 | 774 | LDA PAGM |
775 801 1510 1572 1775 1813 1877 1924 2010 2022 2054 2091 2098 2157 2335 2536 2568 2585 2785 | 775 801 1510 1572 1775 1813 1877 1924 2010 2022 2054 2091 2098 2157 2335 2536 2568 2585 2785 | ORA A |
| 776 | 776 | JZ DISASM |
| 779 | 779 | LXI H, 0FFFFH |
| 780 | 780 | SHLD MPC |
| 783 | 783 | JNZ DISASM |
| 786 | 786 | STA PAGM |
| 788 | 788 | JMP DIS1 |
| 791 | 791 | DISASM: |
793 2201 | 793 2201 | MVI C, CHKIO |
| 795 | 795 | ANI 1 |
| 796 | 796 | JNZ GOBACK |
| 799 | 799 | LXI H, PAGM |
| 802 | 802 | JZ DIS0 |
805 2160 | 805 2160 | DCR M |
| 808 | 808 | DIS0: |
809 1012 | 809 1012 | CALL PRPC |
| 810 | 810 | DIS1: |
811 966 968 982 | 811 966 968 982 | CALL RDBYTE |
| 813 | 813 | LXI H, TABLE |
| 814 | 814 | LXI B, 11H |
| 815 | 815 | D1: |
| 817 | 817 | JZ TG1 |
| 820 | 820 | JNZ D1 |
| 821 | 821 | MVI C, 0AH |
| 822 | 822 | D2: |
| 824 | 824 | JZ TG2 |
| 827 | 827 | JNZ D2 |
| 829 | 829 | D3: |
| 831 | 831 | JZ TG3 |
| 834 | 834 | JNZ D3 |
835 849 | 835 849 | ANI 0C0H |
| 836 | 836 | CPI 40H |
| 837 | 837 | JZ MG0 |
| 838 | 838 | CPI 80H |
| 839 | 839 | JZ MG1 |
| 841 | 841 | ANI BC7H |
| 842 | 842 | SUI 04 |
| 843 | 843 | JZ MG2 |
| 845 | 845 | JZ MG3 |
| 847 | 847 | JZ MG4 |
| 850 | 850 | JZ MG5 |
| 852 | 852 | ANI 0C7H |
| 853 | 853 | SUI 0C0H |
| 854 | 854 | JZ MG6 |
855 857 | 855 857 | SUI 02 |
| 856 | 856 | JZ MG7 |
| 858 | 858 | JZ MG8 |
| 859 | 859 | SUI 03 |
| 860 | 860 | JZ MG9 |
862 954 | 862 954 | ANI 07 |
| 864 | 864 | LXI H, PPOP-1 |
866 871 875 908 912 919 931 943 947 964 980 992 | 866 871 875 908 912 919 931 943 947 964 980 992 | CALL PRINT |
| 869 | 869 | JNZ D6 |
| 870 | 870 | LXI H, PPSW |
872 878 893 910 935 956 972 984 993 | 872 878 893 910 935 956 972 984 993 | JMP DISASM |
| 873 | 873 | MG9: |
| 879 | 879 | MG8: |
| 880 | 880 | MVI C, 43H |
882 887 892 | 882 887 892 | CALL CCPRNT |
883 888 916 | 883 888 916 | JMP D7 |
| 884 | 884 | MG7: |
| 885 | 885 | MVI C, 4AH |
| 889 | 889 | MG6: |
| 890 | 890 | MVI C, 52H |
| 894 | 894 | MG5: |
| 895 | 895 | LXI H, PLXI |
| 899 | 899 | JZ MG51 |
| 900 | 900 | CPI B4 |
| 901 | 901 | JC D4 |
| 902 | 902 | SUI 05 |
| 903 | 903 | D4: |
909 913 | 909 913 | CALL RPPRNT |
| 911 | 911 | MG51: |
914 922 950 | 914 922 950 | MVI C, 2CH |
| 917 | 917 | MG4: |
921 934 949 955 | 921 934 949 955 | CALL RGPRNT |
| 924 | 924 | JMP D8 |
| 925 | 925 | MG3: |
| 927 | 927 | JMP D5 |
| 928 | 928 | MG2: |
| 929 | 929 | LXI H, PINR |
| 930 | 930 | D5: |
| 933 | 933 | D6: |
| 936 | 936 | MG1: |
| 941 | 941 | LXI H, PADD |
| 944 | 944 | JMP D9 |
| 945 | 945 | MG0: |
| 952 | 952 | D9: |
| 957 | 957 | TG3: |
| 962 | 962 | LXI H, TAB3-4 |
| 965 | 965 | D7: |
| 973 | 973 | TG2: |
| 978 | 978 | LXI H, TAB2-4 |
| 981 | 981 | D8: |
| 985 | 985 | TG1: |
| 990 | 990 | LXI H, TAB1-4 |
| 994 | 994 | ERR: |
| 1001 | 1001 | LHLD TPC |
| 1005 | 1005 | ASMEH: |
1006 1254 1746 1944 2266 2502 2596 | 1006 1254 1746 1944 2266 2502 2596 | LXI H, 0 |
| 1011 | 1011 | ASM0: |
| 1013 | 1013 | SHLD TPC |
1014 1268 1910 2008 | 1014 1268 1910 2008 | CALL GETBUFF |
| 1015 | 1015 | CALL GETOP |
| 1016 | 1016 | JMP ASM0 |
| 1018 | 1018 | GOBACK: |
| 1023 | 1023 | TABLE: |
| 1024 | 1024 | DB B00H, 007H, 00FH, 017H |
| 1025 | 1025 | DB 01FH, B27H, 02FH, 837H |
| 1026 | 1026 | DB 03FH, 076H, 0C9H, 8E3H |
| 1027 | 1027 | DB 0E9H, 0EBH, 0F3H, 0F9H |
| 1028 | 1028 | DB 0F8H, 0C6H, 0CEH, 0D3H |
| 1029 | 1029 | DB 0D6H, 0DBH, 0DEH, 0E6H |
| 1030 | 1030 | DB 0EEH, 0F6H, 0FEH, 022H |
| 1031 | 1031 | DB 02AH, 032H, 03AH, 0C3H |
| 1032 | 1032 | DB 0CDH |
| 1033 | 1033 | TAB1: |
| 1046 | 1046 | ETAB1: DB |
| 1047 | 1047 | TAB2: DB , , , |
| 1051 | 1051 | ETAB2: |
| 1054 | 1054 | TAB3: |
| 1058 | 1058 | ETAB3: |
| 1061 | 1061 | PMOV: |
| 1063 | 1063 | PADD: |
| 1067 | 1067 | ETAB5: |
| 1070 | 1070 | PINR: |
| 1072 | 1072 | PDCR: |
| 1074 | 1074 | PMVI: |
| 1076 | 1076 | PLXI: |
| 1080 | 1080 | ETAB7: |
| 1084 | 1084 | PRST: |
| 1086 | 1086 | PPSW: |
| 1088 | 1088 | PPOP: |
| 1091 | 1091 | CCODE: |
| 1095 | 1095 | CREG: |
| 1101 | 1101 | SREG: |
| 1105 | 1105 | DREG: |
| 1108 | 1108 | OPCODE: |
| 1109 | 1109 | DS 4 |
| 1124 | 1124 | DISIH EQU $+3 |
| 1127 | 1127 | BDOSE EQU 5H |
| 1128 | 1128 | PCBASE EQU 100H |
| 1129 | 1129 | SPBASE EQU 100H |
| 1130 | 1130 | DISEH EQU DISIN+3 |
| 1131 | 1131 | ASSEM EQU DISEN+3 |
| 1132 | 1132 | DISPC EQU ASSEM+3 |
| 1133 | 1133 | DISPM EQU DISPC+2 |
| 1134 | 1134 | D1SPG EQU DISPM+2 |
| 1135 | 1135 | PSIZE EQU 12 |
| 1136 | 1136 | CSIZE EQU 32 |
| 1137 | 1137 | SSIZE EQU 50 |
| 1140 | 1140 | CIF EQU 1 |
| 1141 | 1141 | COF EQU 2 |
| 1142 | 1142 | RIF EQU 3 |
| 1143 | 1143 | POF EQU 4 |
| 1144 | 1144 | LOF EQU 5 |
| 1146 | 1146 | IDS EQU 7 |
| 1147 | 1147 | GETF EQU 10 |
| 1149 | 1149 | LIFT EQU 12 |
| 1150 | 1150 | OPF EQU 15 |
| 1151 | 1151 | RDF EQU 20 |
| 1152 | 1152 | DMAF EQU 26 |
| 1154 | 1154 | DBP EQU 5BH |
| 1155 | 1155 | DBF EQU 80H |
| 1156 | 1156 | DFCB EQU 5CH |
| 1157 | 1157 | FCB EQU DFCB |
| 1158 | 1158 | FDN EQU 0 |
| 1159 | 1159 | FFN EQU 1 |
| 1160 | 1160 | FFT EQU 9 |
| 1161 | 1161 | FRL EQU 12 |
| 1162 | 1162 | FRC EQU 15 |
| 1163 | 1163 | FCR EQU 32 |
| 1164 | 1164 | FLN EQU 33 |
| 1166 | 1166 | DEOF EQU 1AH |
| 1168 | 1168 | LF EQU BAH |
| 1170 | 1170 | RSTNUM EQU 7 |
| 1171 | 1171 | RSTLOC EQU RSTNUM+S |
| 1172 | 1172 | RSTIN EQU BC7H OR (RSTNUM SHL 3) |
| 1185 | 1185 | AVAL EQU 5 |
| 1186 | 1186 | BVAL EQU 6 |
| 1187 | 1187 | DVAL EQU 7 |
| 1188 | 1188 | HVAL EQU 8 |
| 1189 | 1189 | SVAL EQU 9 |
| 1190 | 1190 | PVAL EQU 10 |
| 1193 | 1193 | ORG DEMON |
| 1195 | 1195 | JMP TRAPAD |
| 1196 | 1196 | JMP BEGIN |
| 1197 | 1197 | BREAKA: |
| 1198 | 1198 | JMP BREAKP |
| 1200 | 1200 | JMP GETBUFF |
| 1201 | 1201 | JMP GNC |
1202 2174 2177 2195 2225 | 1202 2174 2177 2195 2225 | JMP PCHAR |
1203 2216 | 1203 2216 | JMP PBYTE |
| 1204 | 1204 | JMP PADDX |
| 1205 | 1205 | JMP SCANEXP |
| 1206 | 1206 | JMP GETVAL |
| 1209 | 1209 | TRAPAD: |
| 1212 | 1212 | SHLD RETLOC |
| 1214 | 1214 | JMP BDOS |
| 1216 | 1216 | BEGIN: |
| 1218 | 1218 | LXI H, DEMON |
| 1219 | 1219 | SHLD BDOSC+1 |
1220 1322 1366 1620 1633 1935 2721 | 1220 1322 1366 1620 1633 1935 2721 | XRA A |
| 1221 | 1221 | STA BREAKS |
| 1223 | 1223 | LXI H, PCBASE |
1224 1342 1357 2451 2605 | 1224 1342 1357 2451 2605 | SHLD DISPC |
1225 1420 1459 2609 | 1225 1420 1459 2609 | SHLD DISLOC |
1226 1734 | 1226 1734 | SHLD MLOAD |
1229 1540 1818 2511 2557 | 1229 1540 1818 2511 2557 | SHLD PLOC |
| 1230 | 1230 | LXI H, SPBASE |
1231 2517 | 1231 2517 | LXI SP, STACK-4 |
| 1233 | 1233 | LXI H, 10B |
1237 2508 | 1237 2508 | SHLD HLOC |
1240 1972 2503 2581 | 1240 1972 2503 2581 | SHLD TRACER |
1241 1945 1968 2597 | 1241 1945 1968 2597 | SHLD USERBRK |
| 1243 | 1243 | MVI A, 0C3H |
| 1244 | 1244 | STA RSTLOC |
| 1245 | 1245 | LXI H, BREAKA |
| 1246 | 1246 | SHLD RSTLOC+1 |
| 1249 | 1249 | LDA FCB+FFN |
1251 1272 1916 2011 | 1251 1272 1916 2011 | JZ START |
| 1256 | 1256 | JMP RINIT |
1262 1554 | 1262 1554 | LXI SP, STACK-12 |
1264 2115 2129 2224 2403 2599 2791 2795 | 1264 2115 2129 2224 2403 2599 2791 2795 | MVI A, |
1265 1879 2116 2193 2391 2404 2600 2792 2796 | 1265 1879 2116 2193 2391 2404 2600 2792 2796 | CALL PCHAR |
1270 1636 1646 1671 1911 1978 1999 2275 2295 2318 2324 | 1270 1636 1646 1671 1911 1978 1999 2275 2295 2318 2324 | CALL GNC |
1274 1383 | 1274 1383 | JC CERROR |
| 1275 | 1275 | CPI - +1 |
1276 1336 1352 2026 | 1276 1336 1352 2026 | JNC CERROR |
| 1280 | 1280 | LXI H, JMPTAB |
1283 2257 2375 2383 2472 2541 2645 2686 2696 | 1283 2257 2375 2383 2472 2541 2645 2686 2696 | MOV E, M |
1285 2259 2385 2474 2543 2647 2688 2698 | 1285 2259 2385 2474 2543 2647 2688 2698 | MOV D, M |
| 1289 | 1289 | JMPTAB: |
| 1290 | 1290 | DW ASSM |
1291 1294 1299 1300 1303 1304 1305 1306 1311 1312 1314 1315 | 1291 1294 1299 1300 1303 1304 1305 1306 1311 1312 1314 1315 | DW CERROR |
| 1292 | 1292 | DW CALLPR |
| 1293 | 1293 | DW DISPLAY |
| 1295 | 1295 | DW FILL |
| 1296 | 1296 | DW GOTO |
| 1297 | 1297 | DW HEXARI |
| 1298 | 1298 | DW INFCB |
| 1301 | 1301 | DW LASSM |
| 1302 | 1302 | DW MOVE |
| 1307 | 1307 | DW READ |
| 1308 | 1308 | DW SETMEM |
| 1309 | 1309 | DW TRACE |
| 1310 | 1310 | DW UNTRACE |
| 1313 | 1313 | DW EXAMINE |
| 1318 | 1318 | OPN: |
1323 2102 | 1323 2102 | STA DBP |
| 1324 | 1324 | MVI C, OPF |
1325 1771 2096 | 1325 1771 2096 | LXI D, DFCB |
1326 1773 1872 2097 2123 2137 2202 | 1326 1773 1872 2097 2123 2137 2202 | CALL TRAPAD |
| 1332 | 1332 | ASSM: |
| 1334 | 1334 | LXI H, ASSEM |
1335 1732 1740 | 1335 1732 1740 | CALL COMLOAD |
1338 1354 1382 1416 1488 1524 1607 1745 1896 1943 2009 | 1338 1354 1382 1416 1488 1524 1607 1745 1896 1943 2009 | CALL SCANEXP |
1340 1365 1427 1490 1511 1609 1749 1836 1898 1921 1925 1966 2001 2013 2023 2055 2328 | 1340 1365 1427 1490 1511 1609 1749 1836 1898 1921 1925 1966 2001 2013 2023 2055 2328 | JNZ CERROR |
1341 1356 1362 1385 1397 1405 1418 1425 1491 1493 1495 1525 1527 1529 1610 1612 1750 1899 1922 1953 1967 2014 | 1341 1356 1362 1385 1397 1405 1418 1425 1491 1493 1495 1525 1527 1529 1610 1612 1750 1899 1922 1953 1967 2014 | CALL GETVAL |
| 1343 | 1343 | CALL ASSEM |
| 1346 | 1346 | LASSM: |
1350 2447 2603 | 1350 2447 2603 | CALL CHKDIS |
1355 1359 | 1355 1359 | JZ SPAGE |
| 1363 | 1363 | SHLD DISPM |
| 1367 | 1367 | JMP SPAG0 |
| 1369 | 1369 | SPACE: MVI A, PSIZE |
| 1370 | 1370 | SPAG0: STA DISPG |
1371 2454 | 1371 2454 | CALL DISEN |
| 1380 | 1380 | CALLPR: |
1384 1644 1677 1756 1796 1957 2333 | 1384 1644 1677 1756 1796 1957 2333 | JZ CERROR |
| 1391 | 1391 | JNZ CALL0 |
1395 1403 | 1395 1403 | JMP CALL2 |
| 1396 | 1396 | CALL0: |
| 1400 | 1400 | JNZ CALL1 |
| 1404 | 1404 | CALL1: |
| 1407 | 1407 | CALL2: |
| 1411 | 1411 | LXI H, START |
| 1415 | 1415 | DISPLAY: |
1417 1424 | 1417 1424 | JZ DISP1 |
| 1419 | 1419 | JC DISFO |
| 1421 | 1421 | DISP0: |
1422 1542 2077 | 1422 1542 2077 | ANI 7FH |
| 1428 | 1428 | JMP DISP2 |
| 1430 | 1430 | DISP1: |
1431 1444 1468 1477 | 1431 1444 1468 1477 | LHLD DISLOC |
| 1433 | 1433 | ANI BF0H |
| 1435 | 1435 | LXI D, PSIZE*16-1 |
| 1437 | 1437 | DISP2: |
1438 2459 | 1438 2459 | SHLD DISMAX |
| 1440 | 1440 | DISP3: |
1442 2582 | 1442 2582 | CALL BREAK |
| 1443 | 1443 | JNZ START |
| 1445 | 1445 | SHLD TDISP |
1446 1617 1627 1885 1888 1903 2416 2476 2607 | 1446 1617 1627 1885 1888 1903 2416 2476 2607 | CALL PADDR |
| 1447 | 1447 | DISP4: |
1448 1462 1618 1886 1904 1909 2007 2437 2442 2467 | 1448 1462 1618 1886 1904 1909 2007 2437 2442 2467 | CALL BLANK |
1450 1908 2214 2411 2462 2481 2794 | 1450 1908 2214 2411 2462 2481 2794 | CALL PBYTE |
1452 2464 | 1452 2464 | CALL DISCOM |
| 1453 | 1453 | JC DISCH |
| 1455 | 1455 | ANI BFH |
| 1456 | 1456 | JNZ DISP4 |
| 1458 | 1458 | DISCH: |
| 1460 | 1460 | LHLD TDISP |
| 1464 | 1464 | DISCH0: |
| 1466 | 1466 | CALL PGRAPH |
1470 1725 2231 | 1470 1725 2231 | SUB E |
1471 1474 | 1471 1474 | JNZ DISCH0 |
| 1473 | 1473 | SUB D |
| 1478 | 1478 | CALL DISCOOM |
1479 1514 1698 | 1479 1514 1698 | JC START |
| 1482 | 1482 | JMP DISP3 |
| 1487 | 1487 | SCAN3: |
| 1500 | 1500 | BCDE: |
| 1502 | 1502 | SUB C |
| 1504 | 1504 | SBB B |
| 1507 | 1507 | FILL: |
1508 1695 | 1508 1695 | CALL SCAN3 |
| 1512 | 1512 | FILL0: |
1513 1697 2560 | 1513 1697 2560 | CALL BCDE |
| 1516 | 1516 | STAX B |
| 1518 | 1518 | JMP FILL0 |
| 1522 | 1522 | GOTO: |
| 1530 | 1530 | MOV B, H |
| 1531 | 1531 | MOV C, L |
| 1535 | 1535 | GOPR: |
1537 1544 1547 | 1537 1544 1547 | JZ GOP1 |
| 1538 | 1538 | JC GOP0 |
| 1541 | 1541 | GOP0: |
1545 1551 | 1545 1551 | CALL SETBK |
| 1550 | 1550 | MOV D, B |
| 1553 | 1553 | GOP1: |
1560 1887 2450 2460 2523 2601 2635 2779 | 1560 1887 2450 2460 2523 2601 2635 2779 | LHLD PLOC |
1562 2608 2730 | 1562 2608 2730 | LHLD HLOC |
| 1566 | 1566 | SETBK: |
1569 2532 | 1569 2532 | LXI H, BREAKS |
1571 2090 2288 | 1571 2090 2288 | INR M |
| 1573 | 1573 | JZ SETBK0 |
1578 2636 | 1578 2636 | MOV B, M |
1581 2677 | 1581 2677 | CMP E |
| 1582 | 1582 | JNZ SETBKB |
1584 2680 | 1584 2680 | CMP D |
| 1585 | 1585 | JNZ SETBK0 |
| 1589 | 1589 | SETBK0: |
1591 2065 2282 2641 | 1591 2065 2282 2641 | MOV M, E |
1593 2067 2284 | 1593 2067 2284 | MOV M, D |
| 1597 | 1597 | MVI A, RSTIN |
| 1606 | 1606 | HEXARI: |
1608 2025 | 1608 2025 | CPI 2 |
| 1623 | 1623 | MVI A, 0 |
1625 2030 2036 | 1625 2030 2036 | MOV H, A |
| 1631 | 1631 | INFCB: |
| 1634 | 1634 | STA FCB+FCR |
| 1635 | 1635 | STA FCB |
| 1637 | 1637 | MVI C, 9 |
| 1638 | 1638 | LXI H, FCB+FFN |
| 1640 | 1640 | FLP: |
| 1648 | 1648 | JZ FLB |
| 1651 | 1651 | JNZ FLP |
| 1654 | 1654 | FLB: |
| 1656 | 1656 | JZ TFT |
| 1659 | 1659 | JMP FLB |
| 1662 | 1662 | TFT: |
| 1665 | 1665 | JNZ FLB1 |
1668 1708 | 1668 1708 | LXI H, FCB+FFT |
| 1670 | 1670 | FLP1: |
| 1673 | 1673 | JZ FLB1 |
| 1678 | 1678 | JMP FLP1 |
| 1681 | 1681 | FLB1: |
| 1683 | 1683 | JZ FLZ |
| 1686 | 1686 | JMP FLB1 |
| 1689 | 1689 | FLZ: |
1690 2298 2534 | 1690 2298 2534 | MVI M, 0 |
| 1696 | 1696 | MOVED: |
| 1699 | 1699 | LDAX B |
| 1703 | 1703 | JMP MOVE0 |
| 1707 | 1707 | QCOM: |
| 1721 | 1721 | COMLOAD: |
1723 1884 | 1723 1884 | LHLD MLOAD |
1727 2234 | 1727 2234 | SBB D |
| 1731 | 1731 | CKMLOAD: |
| 1737 | 1737 | CHKDIS: |
| 1739 | 1739 | LXI H, DISEN |
| 1744 | 1744 | READ: |
| 1747 | 1747 | JZ READN |
| 1751 | 1751 | READH: |
| 1753 | 1753 | RINIT: |
| 1754 | 1754 | CALL OPN |
| 1755 | 1755 | CPI 255 |
| 1761 | 1761 | CALL QCOM |
1762 1798 | 1762 1798 | JNZ HREAD |
| 1766 | 1766 | LXI D, 100H |
| 1769 | 1769 | LCOM0: |
1772 2095 | 1772 2095 | MVI C, RDF |
| 1776 | 1776 | JNZ RLIFT |
| 1778 | 1778 | LXI D, DBF |
| 1779 | 1779 | MVI C, 80H |
| 1780 | 1780 | LCOM1: |
| 1786 | 1786 | JNZ LC0M1 |
1788 1834 | 1788 1834 | CALL CKMLOAD |
| 1789 | 1789 | JMP LCOM0 |
| 1793 | 1793 | HREAD: |
1794 1845 1855 | 1794 1845 1855 | CALL DISKR |
1795 2087 | 1795 2087 | CPI DEOF |
1804 1806 1808 1822 1826 1832 | 1804 1806 1808 1822 1826 1832 | CALL RBYTE |
| 1814 | 1814 | JNZ RDTYPE |
| 1816 | 1816 | MOV H, B |
| 1817 | 1817 | MOV L, C |
| 1819 | 1819 | JMP RLIFT |
| 1821 | 1821 | RDTYPE: |
| 1825 | 1825 | RED1: |
1829 2624 | 1829 2624 | DCR E |
| 1830 | 1830 | JNZ RED1 |
| 1837 | 1837 | JMP HREAD |
| 1839 | 1839 | RBYTE: |
1846 1856 2268 | 1846 1856 2268 | CALL HEXCON |
| 1863 | 1863 | ADD D |
| 1870 | 1870 | RLIFT: |
| 1871 | 1871 | MVI C, LIFT |
| 1874 | 1874 | LXI H, LMSG |
| 1875 | 1875 | RLI0: |
| 1878 | 1878 | JZ RLI1 |
| 1881 | 1881 | JMP RLI0 |
| 1882 | 1882 | RLI1: |
| 1890 | 1890 | LMSG: |
| 1891 | 1891 | DB CR, LF, , 0 |
| 1895 | 1895 | SETMEM: |
| 1900 | 1900 | SETM0: |
| 1914 | 1914 | JZ SETM1 |
| 1919 | 1919 | CALL SCANEX |
| 1929 | 1929 | SETM1: |
| 1931 | 1931 | JMP SETM0 |
| 1934 | 1934 | UNTRACE: |
| 1936 | 1936 | JMP ETRACE |
| 1939 | 1939 | TRACE: |
| 1940 | 1940 | MVI A, 0FFH |
| 1941 | 1941 | ETRACE: |
| 1942 | 1942 | STA TMODE |
| 1946 | 1946 | JZ TRAC0 |
| 1952 | 1952 | JC SETTR0 |
1956 2039 | 1956 2039 | ORA H |
| 1960 | 1960 | SETTR0: |
| 1964 | 1964 | JZ SETTR1 |
| 1969 | 1969 | SETTR1: |
| 1971 | 1971 | TRAC0: |
1973 1981 2592 | 1973 1981 2592 | CALL DSTATE |
1974 2570 2589 2593 | 1974 2570 2589 2593 | JMP GOPR |
| 1977 | 1977 | EXAMINE: |
| 1980 | 1980 | JNZ EXAM0 |
| 1984 | 1984 | EXAM0: |
| 1985 | 1985 | LXI B, PVAL+l |
1987 2420 | 1987 2420 | LXI H, RVECT |
| 1988 | 1988 | EXAM1: |
| 1990 | 1990 | JZ EXAM2 |
| 1994 | 1994 | JNZ EXAM1 |
1996 2253 | 1996 2253 | JMP CERROR |
| 1998 | 1998 | EXAM2: |
2006 2426 | 2006 2426 | CALL DELT |
2018 2393 2434 | 2018 2393 2434 | CPI AVAL |
| 2019 | 2019 | JNC EXAM4 |
2028 2359 | 2028 2359 | CALL FLGSHF |
2031 2035 | 2031 2035 | MOV B, C |
| 2032 | 2032 | MVI A, 0FEH |
2033 2038 | 2033 2038 | CALL LROTATE |
| 2034 | 2034 | ANA H |
| 2043 | 2043 | LROTATE: |
| 2048 | 2048 | JMP LROTATE |
| 2050 | 2050 | EXAM4: |
| 2051 | 2051 | JNZ EXAM5 |
2057 2409 | 2057 2409 | LXI H, ALOC |
| 2061 | 2061 | EXAM5: |
2063 2382 | 2063 2382 | CALL GETDBA |
| 2070 | 2070 | DISKR: |
| 2075 | 2075 | RDI: |
| 2076 | 2076 | LDA DBP |
| 2078 | 2078 | JZ NDI |
| 2081 | 2081 | RDC: |
| 2084 | 2084 | LXI H, DBF |
| 2088 | 2088 | JZ DEF |
| 2089 | 2089 | LXI H, DBP |
| 2092 | 2092 | JMP RRET |
| 2094 | 2094 | NDI: |
| 2099 | 2099 | JNZ DEF |
| 2103 | 2103 | JMP RDC |
| 2105 | 2105 | DEF: |
| 2107 | 2107 | RRET: |
| 2113 | 2113 | CERROR: |
| 2120 | 2120 | GETBUFF: |
| 2121 | 2121 | MVI C, GETF |
| 2122 | 2122 | LXI D, COMLEN |
| 2124 | 2124 | LXI H, COMBUF |
2125 2164 | 2125 2164 | SHLD NEXT COM |
| 2128 | 2128 | BLANK: |
| 2131 | 2131 | PCHAR: |
| 2136 | 2136 | MVI C, COF |
| 2143 | 2143 | TRANS: |
| 2147 | 2147 | CPI ( OR 0100000B) |
| 2149 | 2149 | ANI 1011111B |
| 2152 | 2152 | GNC: |
| 2155 | 2155 | LXI H, CURLEN |
2158 2192 | 2158 2192 | MVI A, CR |
| 2159 | 2159 | JZ GNCRET |
| 2161 | 2161 | LHLD NEXTCOM |
| 2165 | 2165 | CALL TRANS |
| 2166 | 2166 | GNCRET: |
| 2170 | 2170 | PNIB: |
| 2172 | 2172 | JNC PNIBH |
| 2175 | 2175 | PNIBH: |
| 2176 | 2176 | ADI -IO |
| 2179 | 2179 | PBYTE: |
2186 2398 | 2186 2398 | CALL PNIB |
| 2189 | 2189 | JMP PNIB |
| 2194 | 2194 | MVI A, LF |
| 2197 | 2197 | BREAK: |
| 2203 | 2203 | ANI 18 |
| 2209 | 2209 | PADDX: |
| 2212 | 2212 | PADDR: |
| 2218 | 2218 | PGRAPH: |
| 2220 | 2220 | JNC PPERIOD |
| 2222 | 2222 | JNC PCHAR |
| 2223 | 2223 | PPERIOD: |
| 2227 | 2227 | DISCOM: |
| 2229 | 2229 | LHLD DISMAX |
| 2246 | 2246 | HEXCON: |
| 2255 | 2255 | GETVAL: |
| 2264 | 2264 | GETEXP: |
| 2267 | 2267 | GETEXP0: |
2273 2576 2770 | 2273 2576 2770 | ORA L |
| 2277 | 2277 | JNZ GETEXP0 |
| 2281 | 2281 | SCSTORE: |
2287 2297 | 2287 2297 | LXI H, EXPLIST |
| 2292 | 2292 | SCANEXP: |
| 2296 | 2296 | SCANEX: |
2301 2317 2323 | 2301 2317 2323 | JZ SCANRET |
| 2305 | 2305 | JNZ SCANE0 |
| 2307 | 2307 | MVI A, 80H |
| 2308 | 2308 | STA EXPLIST |
| 2310 | 2310 | JMP SCANE1 |
| 2312 | 2312 | SCANE0: |
2313 2319 2325 | 2313 2319 2325 | CALL GETEXP |
| 2314 | 2314 | SCANE1: |
2315 2320 2326 | 2315 2320 2326 | CALL SCSTORE |
| 2329 | 2329 | SCANRET: |
| 2330 | 2330 | LXI D, EXPLIST |
| 2332 | 2332 | CPI 81H |
| 2342 | 2342 | FLGSHF: |
| 2347 | 2347 | LXI H, FLGTAB |
| 2348 | 2348 | MOV E, B |
| 2352 | 2352 | LXI H, FLOC |
| 2358 | 2358 | GETFLG: |
| 2360 | 2360 | GETFLO: |
| 2362 | 2362 | JZ GETFL1 |
| 2364 | 2364 | JMP GETFL0 |
| 2365 | 2365 | GETFL1: |
| 2366 | 2366 | ANI IB |
| 2369 | 2369 | GETDBA: |
| 2370 | 2370 | SUI BVAL |
| 2371 | 2371 | LXI H, RINX |
| 2376 | 2376 | MVI D, 0FFH |
| 2377 | 2377 | LXI H, STACK |
| 2381 | 2381 | GETDBL: |
| 2389 | 2389 | DELT: |
| 2394 | 2394 | JNC DELT0 |
| 2397 | 2397 | CALL GETFLG |
| 2401 | 2401 | DELT0: |
| 2406 | 2406 | JNZ DELT1 |
| 2414 | 2414 | DELT1: |
| 2415 | 2415 | CALL GETDBL |
| 2419 | 2419 | DSTATE: |
| 2421 | 2421 | MVI B, 0 |
| 2423 | 2423 | DSTA0: |
| 2432 | 2432 | CPI PVAL+1 |
| 2433 | 2433 | JNC DSTA1 |
| 2435 | 2435 | JC DSTA0 |
| 2438 | 2438 | JMP DSTA0 |
| 2441 | 2441 | DSTA1: |
2443 2588 | 2443 2588 | CALL NBRK |
| 2448 | 2448 | JNC DCHEX |
| 2452 | 2452 | LXI H, DISPG |
| 2453 | 2453 | MVI M, 0FFH |
2455 2477 | 2455 2477 | JMP DSTRET |
| 2457 | 2457 | DCHEX: |
| 2465 | 2465 | JC DSTRET |
| 2469 | 2469 | ORA E |
| 2470 | 2470 | JZ DSTA2 |
| 2479 | 2479 | DSTA2: |
| 2482 | 2482 | DSTRET: |
| 2489 | 2489 | RVECT: |
| 2491 | 2491 | RINX: |
| 2492 | 2492 | DB (BLOC-STACK) AND 0FFH |
| 2493 | 2493 | DB (DLOC-STACK) AND 0FFH |
| 2494 | 2494 | DB (HLOC-STACK) AND 0FFH |
| 2495 | 2495 | DB (SLOC-STACK) AND 0FFH |
| 2496 | 2496 | DB (PLOC-STACK) AND 0FFH |
| 2498 | 2498 | FLGTAB: |
| 2499 | 2499 | DB . 1, 7, 8, 3, 5 |
| 2501 | 2501 | CLRTRACE: |
| 2506 | 2506 | BREAKP: |
| 2514 | 2514 | LXI H, 2 |
2525 2717 | 2525 2717 | CPI RSTIN |
| 2535 | 2535 | CLER0: |
| 2537 | 2537 | JZ CLER1 |
| 2548 | 2548 | JMP CLER0 |
| 2550 | 2550 | CLER1: |
| 2553 | 2553 | JZ BREAK0 |
| 2559 | 2559 | LXI B, BDOS |
| 2561 | 2561 | JC BREAK0 |
2564 2598 | 2564 2598 | CALL CLRTRACE |
| 2565 | 2565 | LHLD RETLOC |
| 2567 | 2567 | MVI A, 82H |
| 2572 | 2572 | BREAK0: |
| 2574 | 2574 | LHLD TRACER |
| 2577 | 2577 | JZ STOPEX |
| 2583 | 2583 | JNZ STOPEX |
| 2584 | 2584 | LDA TMODE |
| 2586 | 2586 | JNZ BREAK1 |
| 2591 | 2591 | BREAK1: |
| 2595 | 2595 | STOPEX: |
| 2604 | 2604 | JNC STOP0 |
| 2606 | 2606 | STOP0: |
| 2612 | 2612 | CAT: |
| 2614 | 2614 | LXI D, OPMAX |
| 2615 | 2615 | LXI H, OPLIST |
| 2616 | 2616 | CAT0: |
| 2618 | 2618 | AHA B |
| 2622 | 2622 | JZ CAT1 |
| 2623 | 2623 | INR D |
| 2625 | 2625 | JNZ CAT0 |
| 2626 | 2626 | CAT1: |
| 2627 | 2627 | MOV E, D |
| 2631 | 2631 | NBRK: |
| 2639 | 2639 | CALL CAT |
2640 2777 | 2640 2777 | LXI H, CATNO |
| 2642 | 2642 | LXI H, CATTAB |
| 2650 | 2650 | CAT TAB: |
2651 2653 | 2651 2653 | DW JMPOP |
2652 2654 | 2652 2654 | DW CCOP |
| 2655 | 2655 | DW RETOP |
| 2656 | 2656 | DW RSTOP |
| 2657 | 2657 | DW PCOP |
2658 2659 2663 | 2658 2659 2663 | DW IMOP |
2660 2661 | 2660 2661 | DW DIMOP |
| 2662 | 2662 | DW RCOND |
| 2665 | 2665 | DW SIMOP |
| 2667 | 2667 | JMPOP: |
2668 2702 | 2668 2702 | CALL GETOPA |
2669 2733 | 2669 2733 | JNZ ENDOP |
| 2671 | 2671 | RETOP: |
2672 2745 | 2672 2745 | CALL GETSP |
2673 2713 2727 2737 2742 | 2673 2713 2727 2737 2742 | JMP ENDOP |
| 2675 | 2675 | CBDOS: |
| 2676 | 2676 | MVI A, BDOS AND 0FFH |
| 2679 | 2679 | MVI A, BDOS SHR 8 |
| 2683 | 2683 | GETOPA: |
| 2692 | 2692 | JMP CBDOS |
| 2694 | 2694 | GETSP: |
| 2695 | 2695 | LHLD SLOC |
| 2701 | 2701 | CCOP: |
| 2703 | 2703 | JZ CCOP1 |
2707 2748 | 2707 2748 | MVI A, 2 |
2708 2749 | 2708 2749 | JMP RETCAT |
| 2710 | 2710 | CCOP1: |
| 2715 | 2715 | RSTOP: |
| 2718 | 2718 | JNZ RST0 |
| 2722 | 2722 | JMP RETCAT1 |
| 2723 | 2723 | RST0: |
| 2729 | 2729 | PCOP: |
| 2732 | 2732 | CALL CBDOS |
| 2735 | 2735 | JMP RETOP |
| 2739 | 2739 | SIMOP: |
| 2744 | 2744 | RCOND: |
| 2751 | 2751 | DIMOP: |
| 2756 | 2756 | IMOP: |
| 2761 | 2761 | ENDOP: |
| 2762 | 2762 | MVI A, 1 |
| 2763 | 2763 | RETCAT: |
| 2766 | 2766 | RETCAT1: |
| 2768 | 2768 | LHLD USERBRK |
2771 2788 | 2771 2788 | JZ RETCAT2 |
| 2781 | 2781 | LXI H, RETUSER |
| 2784 | 2784 | RETUSER: |
| 2797 | 2797 | JMP STOPEX |
| 2798 | 2798 | RETCAT2: |
| 2806 | 2806 | OPLIST: |
| 2807 | 2807 | DB 1111$1111B, 1100$0011B |
| 2808 | 2808 | DB 1100$0111B, 1100$0010B |
| 2809 | 2809 | DB 1111$1111B, 1100$1101B |
| 2810 | 2810 | DB 1100$0111B, 1100$0100B |
| 2811 | 2811 | DB 1111$1111B, 1100$1001B |
| 2812 | 2812 | DB 1100$0111B, 1100$0111B |
| 2813 | 2813 | DB 1111$1111B, 1110$1001B |
| 2814 | 2814 | DB 1100$0111B, 0000$0110B |
| 2815 | 2815 | DB 1100$8111B, 1100$0110B |
| 2816 | 2816 | DB 1100$1111B, 0000$0001B |
| 2817 | 2817 | DB 1110$0111B, 0810$0010B |
| 2818 | 2818 | DB 1100$0111B, 1100$0000B |
| 2819 | 2819 | DB 1111$8111B, 1101$0011B |
| 2820 | 2820 | OPMAX EQU ($-OPLIST)/2 |
| 2822 | 2822 | CATNO: DS 1 |
| 2823 | 2823 | USERBRK:DS 2 |
| 2824 | 2824 | RETLOC: DS 2 |
| 2825 | 2825 | TMODE: DS 1 |
| 2826 | 2826 | TRACER: DS 2 |
| 2827 | 2827 | BREAKS: DS 7 |
| 2828 | 2828 | EXPLIST:DS 7 |
| 2829 | 2829 | DISLOC: DS 2 |
| 2830 | 2830 | DISMAX: DS 2 |
| 2831 | 2831 | TDISP: DS 2 |
| 2832 | 2832 | NEXTCOM:DS 2 |
| 2833 | 2833 | COMLEN: DB CSIZE |
| 2834 | 2834 | CURLEN: DS 1 |
| 2835 | 2835 | COMBUF: DS CSIZE |
| 2836 | 2836 | MLOAD: DS 2 |
| 2837 | 2837 | DS SSIZE |
| 2838 | 2838 | STACK: PLOC EQU STACK-2 |
| 2839 | 2839 | HLOC EQU STACK-4 |
| 2840 | 2840 | SLOC EQU STACK-6 |
| 2841 | 2841 | ALOC EQU STACK-7 |
| 2842 | 2842 | FLOC EQU STACK-8 |
| 2843 | 2843 | BLOC EQU STACK-10 |
| 2844 | 2844 | DLOC EQU STACK-12 |
| Matching Comments and Strings |
| File1 Line# |
File2 Line# |
Comment/String |
| 2 | 2 | DDT RELOCATOR PROGRAM, INCLUDED WITH THE MODULE TO PERFORM |
| 3 | 3 | THE MOVE FROM 200H TO THE DESTINATION ADDRESS |
| 4 | 4 | DISTANCE UP TO DEMON |
| 8 | 8 | BDOS PRINT FUNCTION |
| 9 | 9 | MODULE ADDRESS |
| 11 | 11 | ADDRESS FIELD FILLED-IN WHEN MODULE BUILT |
| 13 | 13 | COPYRIGHT (C) 1976, DIGITAL RESEARCH |
| 15 | 15 | DDT VERS |
| 25 | 25 | RECOVER LENGTH OF MOVE |
| 26 | 26 | ADDRESS FIELD OF JUMP TO BDOS (TOP MEMORY) |
| 27 | 27 | A HAS HIGH ORDER ADDRESS OF MEMORY TOP |
| 28 | 28 | PAGE DIRECTLY BELOW BDOS |
| 29 | 29 | A HAS HIGH ORDER ADDRESS OF RELOC AREA |
| 31 | 31 | D,E ADDRESSES BASE OF RELOC AREA |
| 32 | 32 | SAVE FOR RELOCATION BELOW |
| 34 | 34 | READY FOR THE MOVE |
36 54 | 36 54 | BC=0? |
| 39 | 39 | COUNT MODULE SIZE DOWN TO ZERO |
| 40 | 40 | GET NEXT ABSOLUTE LOCATION |
| 41 | 41 | PLACE IT INTO THE RELOC AREA |
| 46 | 46 | STORAGE MOVED, READY FOR RELOCATION |
| 47 | 47 | HL ADDRESSES BEGINNING OF THE BIT MAP FOR RELOCATION |
| 48 | 48 | RECALL BASE OF RELOCATION AREA |
| 49 | 49 | RECALL MODULE LENGTH |
| 50 | 50 | SAVE BIT MAP BASE IN STACK |
| 51 | 51 | RELOCATION BIAS IS IN D |
| 58 | 58 | NOT END OF THE RELOCATION, MAY BE INTO NEXT BYTE OF BIT M |
| 59 | 59 | COUNT LENGTH DOWN |
| 61 | 61 | 0 CAUSES FETCH OF NEXT BYTE |
| 63 | 63 | FETCH BIT MAP FROH STACKED ADDRESS |
| 65 | 65 | NEXT 8 BITS OF MAP |
| 67 | 67 | BASE ADDRESS GOES BACK TO STACK |
| 68 | 68 | L HOLDS THE MAP AS WE PROCESS 0 LOCATION |
| 71 | 71 | CY SET TO 1 IF RELOCATION NECESSARY |
| 72 | 72 | BACK TO L FOR NEXT TIME AROUND |
| 73 | 73 | SKIP RELOCATION IF CY=0 |
| 75 | 75 | CURRENT ADDRESS REQUIRES RELOCATION |
| 77 | 77 | APPLY BIAS IN H |
| 80 | 80 | TO NEXT ADDRESS |
| 81 | 81 | FOR ANOTHER BYTE TO RELOCATE |
| 83 | 83 | END OF RELOCATION |
| 84 | 84 | CLEAR STACKED ADDRESS |
| 88 | 88 | GO TO RELOCATED PROGRAM |
| 92 | 92 | CP/M DEBUGGER DISASSEMBLER/ASSEMBLER MODULE |
93 1115 | 93 1115 | RELOCATABLE VERSION |
| 95 | 95 | COPYRIGHT (C) 1376 |
96 1118 | 96 1118 | DIGITAL RESEARCH |
97 1119 | 97 1119 | BOX 579 PACIFIC GROVE |
98 1120 | 98 1120 | CALIFORNIA 93950 |
| 111 | 111 | SYNONYM FOR GNC |
| 112 | 112 | CONSOLE OUTPUT FUNCTION |
| 113 | 113 | CHECK FOR CHARACTER INPUT DURING LIST |
| 119 | 119 | MODULE LOCATION |
| 120 | 120 | BRANCH AROUND DISASSEMBLER IF USED |
| 121 | 121 | INITIALIZE JUMPS |
| 123 | 123 | ENTRY POINT FOR ASSEMBLER |
| 125 | 125 | CURRENT FAKED PC DURING DISASSEMBLY |
| 127 | 127 | MAX VALUE FOR PC (STOP ADDRESS) |
| 129 | 129 | PAGE MODE IF NON ZERO |
| 131 | 131 | TEMPORARY PC FOR ASSEMBLER RESTORE ON ERROR |
| 133 | 133 | ENTRY SP VALUE |
| 137 | 137 | PRINT CHARACTER IN REGISTER C |
| 142 | 142 | CHARACTER MOVES TO E |
| 143 | 143 | OUTPUT FUNCTION |
| 152 | 152 | CHECK FOR DELIMITER |
| 162 | 162 | RESTART CURRENT LINE |
| 165 | 165 | RETURN AND LINE FEED |
| 172 | 172 | FILL OPCODE WITH CHARACTERS |
| 176 | 176 | ENTER HERE IF CHARACTER SCANNED |
| 182 | 182 | CLEAR BUFFER |
| 191 | 191 | GARBAGE REMOVED AT BEGINNING OF SCAN |
| 195 | 195 | STORE CHARACTER |
201 1677 | 201 1677 | TOO LONG |
| 204 | 204 | END OF CURRENT SCAN, COMPARE FOR EMPTY |
| 209 | 209 | CONVERT ACCUMULATOR TO HEXADECIMAL |
| 212 | 212 | '0' - '9' |
| 219 | 219 | GET ADDRESS VALUE TO B (HIGH ORDER) AND C (LOW) WITH COPY OF |
| 223 | 223 | OPCODE INDEX |
| 227 | 227 | NEXT CHARACTER |
| 230 | 230 | CONVERT ACCUMULATOR |
| 232 | 232 | COPY D,E TO H,L |
236 2272 | 236 2272 | *16 |
| 239 | 239 | +CHAR |
| 240 | 240 | BACK TO D,E |
| 241 | 241 | NEXT POSITION |
244 1703 | 244 1703 | FOR ANOTHER |
| 246 | 246 | D,E CONTAINS RESULT |
| 249 | 249 | COPY OF LOW BYTE TO ACCUMULATOR |
| 251 | 251 | SETS ZERO FLAG IF B IS ZERO |
| 254 | 254 | GET BYTE VALUE TO ACCUMULATOR AND C, CHECK FOR HIGH ORDER ZE |
| 259 | 259 | INITIALIZE THE JUMPS AROUND DISASSEMBLER |
| 260 | 260 | ADDRESS FIELD OF JUMP AT 5H |
| 261 | 261 | LOW ORDER ADDRESS OF THIS MO |
| 262 | 262 | ALREADY ADDRESSING THIS MODULE |
| 263 | 263 | OR A MODULE BELOW THIS POINT? |
| 264 | 264 | IF SO, SKIP THIS OPERATION |
| 266 | 266 | NO CARRY IF (5H) <= MODLOC |
| 267 | 267 | CHANGE ADDRESS |
| 268 | 268 | FIELD OF JUMP AT 5H |
271 273 | 271 273 | ************************************************************ |
| 272 | 272 | ********* ASSEMBLER MODULE STARTS HERE ********************* |
| 275 | 275 | MOVE REGISTER INDICATOR TO MIDDLE FIELD OF CODE |
| 282 | 282 | MOVE TO LEFT BY 4 AND MASK |
| 290 | 290 | SAME AS SEAR, EXCEPT 2 CHARACTER MATCH |
| 291 | 291 | H,L ADDRESS TABLE TO MATCH ON |
| 293 | 293 | 2ND BYTE IN D, 1ST BYTE IN E |
| 294 | 294 | H,L ADDRESS TABLE |
| 296 | 296 | GET 1ST BYTE |
| 297 | 297 | MATCH? |
| 298 | 298 | TO ADDRESS NEXT ELT |
| 299 | 299 | NEXT TO MATCH |
| 300 | 300 | 2ND CHAR |
| 302 | 302 | MATCH AT CURRENT ENTRY |
| 306 | 306 | ADDRESSES NEXT ELEMENT |
| 308 | 308 | FOR ANOTHER COMPARE |
| 310 | 310 | NO MATCH IN TABLE, RETURN WITH NON-ZERO VALUE |
| 315 | 315 | SEARCH FOR MATCH IN OPCODE TABLE, LENGTH OF TABLE IN REG- |
| 316 | 316 | D,E CONTAINS ADDRESS OF BINARY EQUIVALENT OF OPCODE |
| 317 | 317 | H,L ADDRESS FOUR CHARACTER OPCODE TO MATCH |
| 318 | 318 | OPCODE CONTAINS FOUR BYTE OPCODE TYPED AT CONSOLE |
| 319 | 319 | RETURNS WITH ZERO VALUE IF OPCOE FOUND, WITH D,E |
| 320 | 320 | ADDRESSING PROPER BYTE, NON-ZERO IF NOT FOUND. |
| 321 | 321 | 4 CHARACTER MATCH |
| 323 | 323 | SAVE THE CURRENT BYTE VALUE LOCATION |
| 324 | 324 | ADDRESS CHARACTERS TYPED |
| 326 | 326 | POINT TO FIRST BYTE TO MATCH |
| 327 | 327 | SAME CHARACTER AS TABLE? |
| 328 | 328 | NO, SKIP TO NXT TABLE ENTRY |
| 329 | 329 | YES, LOOK AT NEXT CHARACTER |
| 330 | 330 | MOVE TO NEXT CHARACTER TYPED |
| 331 | 331 | DECREMENT CHARACTER COUNT |
| 332 | 332 | MORE TO MATCH? |
| 334 | 334 | COMPLETE MATCH, RETURN WITH D,E ADDRESSING BYTE VALUE |
| 338 | 338 | MISMATCH, FINISH COUNT |
| 344 | 344 | H,L AT END OF FOUR BYTE AREA, MOVE BACK 8 |
| 346 | 346 | H,L READY FOR NXT, MATCH |
| 348 | 348 | RESTORE BYTE POINTER |
| 349 | 349 | MOVE TO NEXT IN CASE MATCH OK |
| 350 | 350 | MORE OPCODES TO MATCH? |
| 351 | 351 | LOOK FOR MORE |
| 353 | 353 | NO MATCH FOUND IH TABLE, SET NON-ZERO VALUE AND RETURN |
| 358 | 358 | SCAN FOR SIMPLE REGISTER REFERENCE |
| 362 | 362 | 8 REGISTERS |
| 363 | 363 | SIMPLE REGISTERS |
| 364 | 364 | LOOK FOR 2 CHAR HATCH |
| 371 | 371 | GET DOUBLE PRECISION REGISTER |
| 384 | 384 | GET DOUBLE REGISTER (BDHSP) |
| 386 | 386 | PSW? |
| 390 | 390 | GET PUSH/POP REGISTER (BDH OR PSW) |
| 396 | 396 | PSW MUST BE ADJUSTED |
| 399 | 399 | GET CONDITION CODE |
| 400 | 400 | BUFFER IS SCANNED, MOVE LEFT BEFORE COMPARE |
| 403 | 403 | MOVE TWO CHARACTERS |
| 405 | 405 | LOAD CHARACTER TO MOVE |
| 406 | 406 | MOVE LEFT |
| 407 | 407 | NEXT DESTINATION |
| 408 | 408 | NEXT SOURCE |
| 412 | 412 | MUST BE BLANK AT END |
| 418 | 418 | NOW READY TO DO THE COMPARE |
| 425 | 425 | MOVE TO BITS |
| 428 | 428 | GET CONDITION CODE TO REGISTER A, DOUBLE ADDRESS TO B,C |
| 429 | 429 | CONDITION CODE TO A |
| 431 | 431 | VALUE TO B,C |
| 433 | 433 | INCLUDE HIGH ORDER 11'S FOR J AND C OPCODES |
| 437 | 437 | SET MEMORY AT LOCATION PC TO VALUE ADDRESSED BY D |
438 536 | 438 536 | VALUE TO ACCUM |
| 440 | 440 | SET MEMORY AT LOCATION PC TO VALUE IN ACCUM, INC PC |
| 442 | 442 | STORE AT PC |
| 443 | 443 | PC=PC+1 |
| 449 | 449 | PROCESS NEXT OPCODE |
| 452 | 452 | RETURN IF SIMPLE INPUT |
| 456 | 456 | CHECK FOR OPCOES WITH NO OPERANDS |
| 457 | 457 | LENGTH OF GROUP-0 |
| 458 | 458 | END OF GROUP-0 |
| 459 | 459 | FIRST BYTE VALUE |
| 460 | 460 | LOOK FOR MATCH |
| 461 | 461 | NO MATCH, CHECK FOR GROUP-1 |
| 463 | 463 | MATCHED OPCODE, D,E ADDRESS BYTE VALUE |
| 464 | 464 | SET MEMORY AT PC AND INC PC |
| 466 | 466 | CHECK GROUP-1 VALUES |
| 468 | 468 | LENGTH OF GROUP-1 |
| 470 | 470 | D,E REMAIN SET |
| 471 | 471 | NO MATCH, CHECK NEXT GROUP |
| 473 | 473 | MATCH FOUND, SET BYTE AND GET BYTE OPERAND |
| 475 | 475 | GETS BYTE VALUE TO ACCUMULATOR |
| 476 | 476 | PUTS BYTE VALUE TO MEMORY AT PC |
| 478 | 478 | CHECK GROUP-2 OPCODES. REQUIRE DOUBLE BYTE OPERAND |
483 1995 | 483 1995 | NO MATCH |
| 485 | 485 | FOUND MATCH, GET OPCODE BIT PATTERN AND STORE |
| 487 | 487 | ENTER HERE FOR DOUBLE BYTE OPERANDS |
| 488 | 488 | VALUE IN B,A |
| 493 | 493 | CHECK FOR MOV INSTRUCTION |
| 499 | 499 | MOV INSTRUCTION GET DESTINATION OPERAND |
| 500 | 500 | VALUE TO ACCUMULATOR |
| 502 | 502 | SAVE IN B |
| 503 | 503 | BIT PATTERN FOR MOV |
| 505 | 505 | GET NEXT OPERAND FOR MOV, FIRST OPERAND FOR ACCUM/REG OPERAT |
| 507 | 507 | SETS HIGH ORDER TWO BITS |
| 508 | 508 | SETS DESTINATION/OPERATOR |
| 511 | 511 | CHECK FOR GROUP-5 (ACCUM/REG OPERATOR) |
| 517 | 517 | ACCUM/REG INSTRUCTION, C COUNTS OPERATORS AS SEARCH PROCEEDS |
| 522 | 522 | OPERATOR NUMBER (SHIFTED) SAVED FOR LATER MASK |
| 523 | 523 | ACCUM/REG OPERATOR INDICATOR |
| 524 | 524 | GETS OPERAND AND SAVES BYTE IN MEMORY |
| 526 | 526 | MAY BE INR/DCR |
| 532 | 532 | C=2 IF DCR, =1 IF INR |
| 538 | 538 | FILL PROPER INSTRUCTION INDICATOR |
| 541 | 541 | MAY BE A MVI INSTRUCTION |
| 547 | 547 | MVI INSTRUCTION, GET REGISTER |
| 548 | 548 | VALUE GOES TO ACCUMULATOR |
| 555 | 555 | CHECK FOR GROUP-7 |
| 561 | 561 | LXI,STAX,INX,DAD,LDA, OR DCX |
| 562 | 562 | A=1...6 |
| 566 | 566 | MUST BE DAD,LDA, OR DCX |
| 567 | 567 | CHANGES ACCUM TO 9,10, OR 11 |
| 568 | 568 | ACCUMULATOR CONTAINS CODE, SAVE IT |
| 570 | 570 | DOUBLE REGISTER VALUE TO ACCUM |
| 571 | 571 | ADJUST VALUE TO MIDDLE FIELD |
| 572 | 572 | FILLS REMAINING BITS |
| 574 | 574 | MAY BE LXI |
| 577 | 577 | NOT LXI |
| 578 | 578 | PICK UP OPERAND |
| 582 | 582 | RST? |
| 588 | 588 | RST, GET OPERAND |
| 596 | 596 | POP/PUSH? |
| 602 | 602 | C=2 IF PUSH, 1 IF POP |
| 606 | 606 | POP, SET BIT PATTERN |
610 1089 | 610 1089 | PUSH |
| 613 | 613 | DOUBLE PUSH/POP REGISTER TO PROPER FIELD |
| 614 | 614 | MOVE TO FIELD |
| 618 | 618 | J/C/R? |
| 623 | 623 | CONDITION CODE TO FIELD IN ACCUM, ADDRESS TO B,C |
| 625 | 625 | FILL ADDRESS |
647 649 | 647 649 | ***************************************************************** |
| 648 | 648 | ************* END OF ASSEMBLER MODULE, START DISASSEMBLER ******* |
| 653 | 653 | SAVE DE |
| 654 | 654 | MAX PC TO D,E |
| 655 | 655 | CURRENT PC |
| 656 | 656 | SUBTRACT PC FROM MPC, STOP IF CARRY GENERATED |
| 663 | 663 | PC EXCEEDS MPC, RETURN |
| 665 | 665 | RESTORE ORIGINAL STACK POINTER |
| 669 | 669 | RESTORE D,E |
| 755 | 755 | PRINT CRLF FOLLOWED BY PC VALUE |
| 767 | 767 | ENTER HERE FROM DEBUGGER - SET UP JMPS |
| 770 | 770 | SP SAVED FOR LATER RETURN |
| 773 | 773 | CHECK FOR PAGE MODE DISPLAY |
| 774 | 774 | GET PAGE MODE (NUMBER OF LINES TO PRINT) |
| 775 | 775 | SET FLAGS |
| 776 | 776 | NOT PAGE MODE |
| 778 | 778 | SET MPC TO 0FFFFH |
| 781 | 781 | 255 IMPLIES TRACE MODE |
| 783 | 783 | NOT TRACE MODE IF 8R |
| 784 | 784 | TRACE MODE, SET TO 1 AND IGNORE ADDRESS FIELD |
| 785 | 785 | I IN ACC |
| 787 | 787 | RECOVER PC |
| 792 | 792 | CHECK FOR BREAK AT CONSOLE |
| 798 | 798 | CHECK TO SEE IF ENOUGH LINES PRINTED IN PAGE MODE |
801 2157 | 801 2157 | ZERO? |
| 802 | 802 | JMP IF NOT PAGE MODE |
| 804 | 804 | PAGE MODE, DECREMENT AND CHECK FOR ZERO |
| 809 | 809 | LINE NUMBER |
| 994 | 994 | ENTER HERE FOR ERROR REPORTING |
| 1001 | 1001 | RESTORE PC |
| 1005 | 1005 | ENTER HERE FROM DEBUGGER |
| 1012 | 1012 | PRINT PC VALUE |
| 1013 | 1013 | SAVE PC VALUE |
1014 1910 | 1014 1910 | FILL INPUT BUFFER |
| 1015 | 1015 | GET OPERATION |
| 1034 | 1034 | SPHL |
| 1034 | 1034 | XCHG |
1037 2657 2729 | 1037 2657 2729 | PCHL |
| 1037 | 1037 | XTHL |
| 1037 | 1037 | RET |
| 1037 | 1037 | HLT |
| 1040 | 1040 | CMC |
| 1040 | 1040 | STC |
| 1040 | 1040 | CMA |
| 1040 | 1040 | DAA |
| 1043 | 1043 | RAR |
| 1043 | 1043 | RAL |
| 1043 | 1043 | RRC |
| 1043 | 1043 | RLC |
| 1046 | 1046 | HOP |
| 1047 | 1047 | CPI |
| 1047 | 1047 | ORI |
| 1047 | 1047 | XRI |
| 1047 | 1047 | ANI |
| 1048 | 1048 | SBI |
| 1048 | 1048 | SUI |
| 1048 | 1048 | OUT |
| 1050 | 1050 | ACI |
| 1052 | 1052 | ADI |
| 1055 | 1055 | CALL |
| 1055 | 1055 | JMP |
| 1055 | 1055 | LDA |
| 1055 | 1055 | STA |
| 1057 | 1057 | LHLD |
| 1059 | 1059 | SHLD |
| 1062 | 1062 | MOV |
| 1064 | 1064 | ADD |
| 1064 | 1064 | ADC |
| 1064 | 1064 | SUB |
| 1064 | 1064 | SBB |
| 1066 | 1066 | ANA |
| 1066 | 1066 | XRA |
| 1066 | 1066 | ORA |
| 1068 | 1068 | CMP |
| 1071 | 1071 | INR |
| 1073 | 1073 | DCR |
| 1075 | 1075 | MVI |
| 1077 | 1077 | LXI |
| 1077 | 1077 | STAX |
| 1077 | 1077 | INX |
| 1077 | 1077 | DAD |
| 1079 | 1079 | LDAX |
| 1081 | 1081 | DCX |
| 1085 | 1085 | RST |
1087 1106 | 1087 1106 | PSW |
| 1089 | 1089 | POP |
| 1114 | 1114 | CP/M DEBUGGER VERSION 1.0 |
| 1117 | 1117 | COPYRIGHT (C) 1976 |
| 1127 | 1127 | ENTRY POINT TO DOS FROM USER PROGRAMS |
| 1128 | 1128 | DEFAULT PC |
| 1129 | 1129 | DEFAULT SP |
| 1130 | 1130 | DISASSEMBLER ENTRY POINT |
| 1131 | 1131 | ASSEMBLER ENTRY POINT |
| 1132 | 1132 | DISASSEMBLER PC VALUE |
| 1133 | 1133 | DISASSEMBLER PC MAX VALUE |
| 1134 | 1134 | DISASSEMBLER PAGE MODE IF NON ZERO |
| 1135 | 1135 | NUMBER OF ASSEMBLY LINES TO LIST WITH |
| 1136 | 1136 | COMMAND BUFFER SIZE |
| 1137 | 1137 | LOCAL STACK SIZE |
| 1139 | 1139 | BASIC DISK OPERATING SYSTEM CONSTANTS |
| 1147 | 1147 | FILL BUFFER FROM CONSOLE |
| 1148 | 1148 | CHECK IO STATUS |
| 1149 | 1149 | LIFT HEAD ON DISK |
| 1150 | 1150 | DISK FILE OPEN |
| 1151 | 1151 | READ DISK FILE |
| 1152 | 1152 | SET DMA ADDRESS |
| 1154 | 1154 | DISK BUFFER POINTER |
| 1155 | 1155 | DISK BUFFER ADDRESS |
| 1156 | 1156 | DISK FILE CONTROL BLOCK |
| 1158 | 1158 | DISK NAME |
| 1159 | 1159 | FILE NAME |
| 1160 | 1160 | FILE TYPE |
| 1161 | 1161 | REEL NUMBER |
| 1162 | 1162 | RECORD COUNT |
| 1163 | 1163 | CURRENT RECORD |
| 1164 | 1164 | FCB LENGTH |
| 1166 | 1166 | CONTROL-Z (E0F) |
| 1170 | 1170 | RESTART NUMBER |
| 1171 | 1171 | RESTART LOCATION |
1172 1597 | 1172 1597 | RESTART INSTRUCTION |
| 1174 | 1174 | TEMPLATE FOR PROGRAMMED BREAKPOINT |
| 1175 | 1175 | --------- |
| 1176 | 1176 | PCH , PCL |
| 1177 | 1177 | HLH , HLL |
| 1178 | 1178 | SPH , SPL |
| 1179 | 1179 | RA , FLG |
| 1180 | 1180 | B , C |
| 1181 | 1181 | D , E |
| 1182 | 1182 | ----------- |
| 1183 | 1183 | FLG FIELD, MZ0I0E1C (MINUS,IEPO,IDC,EVEN,CARRY) |
| 1185 | 1185 | A REGISTER COUNT IN HEADER |
| 1193 | 1193 | START OF DEBUGGER |
| 1194 | 1194 | DEMON ENTRY POINTS |
| 1195 | 1195 | TRAP ADDRESS FOR RETURN IN CASE INTERR |
| 1199 | 1199 | USEFUL ENTRY POINTS FOR PROGRAMS RUNNING WITH DDT |
| 1200 | 1200 | GET ANOTHER BUFFER FULL |
1201 2162 | 1201 2162 | GET NEXT CHARACTER |
| 1202 | 1202 | PRINT A CHARACTER FROM A |
| 1203 | 1203 | PRINT BYTE IN REGISTER A |
| 1204 | 1204 | PRINT ADDRESS IN REGISTERS D,E |
| 1205 | 1205 | SCAN 0,1,2, OR 3 EXPRESSIONS |
1206 1418 | 1206 1418 | GET VALUE TO H,L |
| 1209 | 1209 | GET THE RETURN ADDRESS FOR THIS JUMP TO BDOS IN CASE O |
| 1210 | 1210 | A SOFT INTERRUPT DURING BDOS PROCESSING |
| 1211 | 1211 | PC TO HL |
| 1212 | 1212 | MAY NOT NEED IT |
| 1219 | 1219 | CHANGE ENTRY POINT ADDRESS FOR BOS |
| 1220 | 1220 | ZERO ACC |
| 1221 | 1221 | CLEARS BREAK POINT COUNT |
| 1224 | 1224 | INITIAL VALUE FOR DISASSEMBLER |
| 1225 | 1225 | INITIAL VALUE FOR DISPLAY |
| 1226 | 1226 | MAX LOAD LOCATION |
| 1228 | 1228 | SETUP RESTART TEMPLATE |
| 1232 | 1232 | INITIAL SP |
| 1233 | 1233 | INITIAL PSW |
| 1236 | 1236 | CLEARED |
| 1237 | 1237 | H,L CLEARED |
| 1238 | 1238 | B,C CLEARED |
| 1239 | 1239 | D,E CLEARED |
| 1240 | 1240 | CLEAR TRACE FLAG |
| 1241 | 1241 | CLEAR USER BREAK DURING TRACE/UNTRACE |
| 1243 | 1243 | (JMP RESTART) |
| 1245 | 1245 | BREAK POINT SUBROUTINE |
| 1246 | 1246 | RESTART LOCATION ADDRESS FIELD |
| 1248 | 1248 | CHECK FOR FILE NAME PASSED TO DEMON, AND LOAD IF PRESENT |
| 1249 | 1249 | BLANK IF NO NAME PASSED |
| 1253 | 1253 | PUSH A ZERO, AND READ |
| 1259 | 1259 | MAIN COMMAND LOOP |
| 1262 | 1262 | INITIALIZE SP IN CASE OF ERROR |
| 1263 | 1263 | INITIAL CRLF |
| 1265 | 1265 | OUTPUT PROMPT |
| 1267 | 1267 | GET INPUT BUFFER |
1268 2008 | 1268 2008 | FILL COMMAND BUFFER |
1270 2390 | 1270 2390 | GET CHARACTER |
| 1273 | 1273 | LEGAL CHARACTER? |
| 1274 | 1274 | COMMAND ERROR |
| 1277 | 1277 | CHARACTER IN REGISTER A IS COMMAND, MUST BE IN THE RANGE A-Z |
1278 2372 | 1278 2372 | INDEX TO E |
| 1279 | 1279 | DOUBLE PRECISION INDEX |
| 1280 | 1280 | BASE OF TABLE |
| 1282 | 1282 | INDEXED |
| 1283 | 1283 | LO BYTE |
| 1285 | 1285 | NO BYTE |
1286 1953 2415 | 1286 1953 2415 | TO H,L |
| 1287 | 1287 | GONE... |
| 1289 | 1289 | JUMP TABLE TO SUBROUTINES |
| 1290 | 1290 | A ENTER ASSEMBLER LANGUAGE |
| 1292 | 1292 | C CALL PROGRAM |
| 1293 | 1293 | D DISPLAY RAM MEMORY |
| 1295 | 1295 | F FILL MEMORY |
| 1296 | 1296 | G GO TO MEMORY ADDRESS |
| 1297 | 1297 | H HEXADECIMAL SUM AND DIFFERENCE |
| 1298 | 1298 | I FILL INPUT FILE CONTROL BLOCK |
| 1301 | 1301 | L LIST ASSEMBLY LANGUAGE |
| 1302 | 1302 | M MOVE MEMORY |
| 1307 | 1307 | R READ HEXADECIMAL FILE |
| 1308 | 1308 | S SET MEMORY COMMAND |
| 1313 | 1313 | X EXAMINE AND MODIFY REGISTERS |
| 1318 | 1318 | FILE OPEN ROUTINE, THIS SUBROUTINE OPENS THE DISK INPUT |
| 1323 | 1323 | CLEAR BUFFER POINTER |
| 1326 | 1326 | TO BDS |
| 1332 | 1332 | ASSEMBLER LANGUAGE INPUT |
| 1333 | 1333 | CHECK FOR ASSM PRESENT |
| 1334 | 1334 | BASE OF ASSEMBLER |
| 1335 | 1335 | COMPARE AGAINST MLOAD |
| 1336 | 1336 | NOT THERE |
| 1338 | 1338 | SCAN THE EXPRESSIONS WHICH FOLLOW |
1339 1895 | 1339 1895 | ONE EXPRESSION EXPECTED |
| 1341 | 1341 | GET EXPRESSION TO H,L |
| 1346 | 1346 | ASSEMBLER LANGUAGE OUTPUT LISTING |
| 1347 | 1347 | L(CR) LISTS FROM CURRENT DISASSM PC FOR SEVERAL LINES |
| 1348 | 1348 | L(NUMBER)(CR) LISTS FROM (NUMBER) FOR SEVERAL LINES |
| 1349 | 1349 | L(NUMBER),(NUMBER) LISTS BETWEEN LOCATIONS |
| 1350 | 1350 | DISASSM PRESENT? |
| 1354 | 1354 | SCAN EXPRESSIONS WHICH FOLLOW |
| 1355 | 1355 | DRANCH IF NOT EXPRESSIONS |
| 1356 | 1356 | EXP1 TO H,L |
| 1357 | 1357 | SETS BASE PC FOR LIST |
| 1358 | 1358 | ONLY EXPRESSION? |
| 1359 | 1359 | SETS SINGLE PAGE MODE |
| 1361 | 1361 | ANOTHER EXPRESSION FOLLOWS |
| 1363 | 1363 | SETS MAX VALUE |
| 1365 | 1365 | ERROR IF MORE EXPN'S |
| 1366 | 1366 | CLEAR PAGE MODE |
| 1369 | 1369 | SCREEN SIZE FOR LIST |
| 1371 | 1371 | CALL DISASSEMBLER |
1372 1796 1819 2041 | 1372 1796 1819 2041 | FOR ANOTHER COMMAND |
| 1374 | 1374 | DISPLAY MEMORY, FORMS ARE |
| 1375 | 1375 | D DISPLAY FROM CURRENT DISPLAY LINE |
| 1376 | 1376 | DNNN SET DISPLAY LINE AND ASSUME D |
| 1377 | 1377 | DNNN,MMM DISPLAY NNN TO MMM |
| 1378 | 1378 | NEW DISPLAY LINE IS SET TO NEXT TO DISPLAY |
| 1381 | 1381 | CALL USER PROGRAM FROM DDT |
| 1383 | 1383 | CANNOT BE ,XXX |
| 1384 | 1384 | CANNOT BE C ALONE |
| 1385 | 1385 | ADDRESS TO CALL IN H,L |
| 1386 | 1386 | READY FOR CALL |
| 1387 | 1387 | GET REMAINING PARAMETERS |
| 1388 | 1388 | REG-A CONTAINS 1,2,OR 3 CORRESPONDING TO NUMBER OF VALUES |
| 1392 | 1392 | NO PARAMETERS, STACK TWO ZEROES |
| 1396 | 1396 | AT LEAST ONE PARAMETER |
| 1401 | 1401 | ONLY ONE PARAMETER, STACK A ZERO |
| 1404 | 1404 | MUST BE TWO PARAMETERS FOR THE CALL |
| 1407 | 1407 | SET UP PARAMETERS IN B,C AND D,E |
| 1408 | 1408 | RECALL SECOND PARAMETER |
| 1409 | 1409 | RECALL FIRST PARAMETER |
| 1410 | 1410 | READY FOR THE USER PROGRAM CALL |
| 1411 | 1411 | RETURN ADDRESS |
| 1412 | 1412 | CALL ADDRESS IN H,L RETURN IN STACK |
| 1413 | 1413 | CALL USER |
| 1416 | 1416 | GET 0, 1, OR 2 EXPNS |
| 1417 | 1417 | ASSUME CURRENT DISLOC |
| 1419 | 1419 | CARRY SET IF ,B FORM |
| 1420 | 1420 | OTHERWISE D1SPC ALREADY SET |
| 1421 | 1421 | GET NEXT VALUE |
| 1422 | 1422 | IN CASE ,B |
| 1424 | 1424 | SET HALF PAGE MODE |
| 1426 | 1426 | A,B,C NOT ALLOWED |
| 1430 | 1430 | 0 OR 1 EXPN, DISPLAY HALF SCREEN |
| 1433 | 1433 | NORMALIZE TO LINE START |
| 1439 | 1439 | DISPLAY MEMORY FROM DISLOC TO DISMAX |
| 1442 | 1442 | BREAK KEY? |
| 1443 | 1443 | STOP CURRENT EXPANSION |
| 1446 | 1446 | PRINT LINE ADDRESS |
| 1449 | 1449 | GET NEXT DATA BYTE |
1450 1908 | 1450 1908 | PRINT BYTE |
| 1452 | 1452 | COMPARE H,L WITH DISMAX |
| 1453 | 1453 | CARRY SET IF H,L > DISMAX |
| 1454 | 1454 | CHECK FOR LINE OVERFLOW |
| 1456 | 1456 | JUMP FOR ANOTHER BYTE |
| 1458 | 1458 | DISPLAY AREA IN CHARACTER FORM |
| 1459 | 1459 | UPDATE FOR NEXT WRITE |
| 1465 | 1465 | GET BYTE |
| 1466 | 1466 | PRINT IF GRAPHIC CHARACTER |
| 1468 | 1468 | COMPARE FOR END OF LINE |
| 1476 | 1476 | DROP THRU AT END OF CHARACTERS |
| 1478 | 1478 | END OF DISPLAY? |
| 1481 | 1481 | NO, CONTINUE WITH HEXT LINE |
| 1485 | 1485 | FILL MEMORY AREA WITH FIXED DATA ELEMENT |
| 1487 | 1487 | SCAN THREE EXPN'S FOR FILL AND MOVE |
1497 1695 | 1497 1695 | BC,DE,HL |
| 1500 | 1500 | COMPARE BC > DE (CARRY GEN'D IF TRUE) |
| 1508 | 1508 | EXPRESSIONS SCANNED BC , DE , HL |
| 1509 | 1509 | MUST BE ZERO |
| 1513 | 1513 | END OF FILL? |
| 1515 | 1515 | DATA |
| 1516 | 1516 | TO MEMORY |
| 1517 | 1517 | NEXT TO FILL |
| 1520 | 1520 | GO COMMAND UITH OPTIONAL BREAKPOINTS |
| 1523 | 1523 | READY FOR GO. |
| 1524 | 1524 | 0, 1, OR 2 EXPS |
| 1526 | 1526 | START ADDRESS |
1528 1532 | 1528 1532 | BKPT1 |
| 1530 | 1530 | BKPT2 |
| 1533 | 1533 | GOTO ADDRESS |
| 1537 | 1537 | NO BREAK POINTS |
| 1539 | 1539 | SET PC |
| 1540 | 1540 | INT0 MACHINE STATE |
| 1541 | 1541 | SET BREAKS |
| 1542 | 1542 | CLEAR, BIT |
| 1543 | 1543 | IF 1 THEN SKIP (2,3 IF BREAKPOINTS) |
| 1545 | 1545 | BREAK POINT FROM D,E |
| 1548 | 1548 | SECOND BREAK POINT |
| 1550 | 1550 | TO D,E |
| 1551 | 1551 | SECOND BREAK POINT SET |
| 1553 | 1553 | RESTORE MACHINE STATE AND START IT |
1558 2515 | 1558 2515 | SP IN HL |
| 1560 | 1560 | PC IN HL |
1561 2513 | 1561 2513 | INTO USER'S STACK |
| 1562 | 1562 | HL RESTORED |
| 1566 | 1566 | SET BREAK POINT AT LOCATION D,E |
| 1569 | 1569 | NUMBER OF BREAKS SET SO FAR |
| 1571 | 1571 | COUNT BREAKS UP |
| 1572 | 1572 | ONE SET ALREADY? |
| 1574 | 1574 | ALREADY SET, MOVE PAST ADDR,DATA FIELDS |
| 1576 | 1576 | CHECK = ADDRESSES |
| 1578 | 1578 | CHECK HO ADDRESS |
| 1580 | 1580 | DON'T SET TWO BREAKPOINTS IF EQUAL |
| 1581 | 1581 | LOW =? |
| 1584 | 1584 | HIGH =? |
| 1586 | 1586 | EQUAL ADDRESSES, REPLACE REAL DATA |
| 1587 | 1587 | GET DATA BYTE |
| 1588 | 1588 | PUT BACK INTO CODE |
| 1590 | 1590 | ADDRESS FIELD |
1591 2383 | 1591 2383 | LSB |
1593 2385 | 1593 2385 | MSB |
| 1594 | 1594 | DATA FIELD |
| 1595 | 1595 | GET BYTE FROM PROGRAM |
| 1596 | 1596 | TO BREAKS VECTOR |
| 1598 | 1598 | TO CODE |
| 1604 | 1604 | HEXADECIMAL ARITHMETIC |
| 1610 | 1610 | FIRST VALUE TO H,L |
| 1612 | 1612 | SECOND VALUE TO H,L |
| 1613 | 1613 | FIRST VALUE TO D,E |
| 1614 | 1614 | SAVE A COPY OF SECOND VAALUE |
1615 1901 | 1615 1901 | NEW LINE |
| 1616 | 1616 | SUM IN H,L |
| 1619 | 1619 | RESTORE SECOND VALUE |
| 1620 | 1620 | CLEAR ACCUM FOR SUBTRACTION |
| 1622 | 1622 | BACK TO L |
| 1623 | 1623 | CLEAR IT AGAIN |
| 1626 | 1626 | DIFFERENCE IN HL |
| 1630 | 1630 | SET INPUT FILE CONTROL BLOCK (AT SCH) TO SIMULATE CONSOLE COMMAND |
| 1632 | 1632 | FILL FCB AT 5CH |
| 1634 | 1634 | CLEAR CURRENT RECORD |
| 1635 | 1635 | CLEAR DISK NUM8ER |
| 1636 | 1636 | CHARACTER IN A |
| 1637 | 1637 | FILE NAME LENGTH+1 |
| 1638 | 1638 | START OF NAME |
| 1640 | 1640 | FILL NAME |
| 1644 | 1644 | FILE NAME TOO LONG. |
| 1646 | 1646 | READ NEXT CHAR |
| 1648 | 1648 | FOUND ., BLANK OUT |
| 1649 | 1649 | NOT MAY BE CR |
| 1651 | 1651 | FOR ANOTHER STORE |
| 1653 | 1653 | NAME FILLED, EXTEND WITH BLANKS |
| 1661 | 1661 | BLANKS FILLED, SCAN FILE TYPE IF '.' FOUND |
| 1664 | 1664 | ENDED WITH . OR CR |
| 1665 | 1665 | FILL REMAINDER WITH BLANKS |
| 1667 | 1667 | SCAN FILE TYPE |
| 1680 | 1680 | FILL WITH BLANKS |
| 1688 | 1688 | ZER0 THE EXTENT |
| 1693 | 1693 | MOVE MEMORY |
| 1696 | 1696 | HAS B,C PASSED D,E? |
| 1698 | 1698 | END OF MOVE |
| 1699 | 1699 | CHAR TO ACCUM |
1700 2124 | 1700 2124 | NEXT TO GET |
| 1701 | 1701 | MOVE IT TO MEMORY |
| 1705 | 1705 | READ FILES (HEX OR COM) |
| 1707 | 1707 | COM FILE IF ZERO AT END |
| 1721 | 1721 | COMPARE HL > MLOAD |
| 1722 | 1722 | H,L TO D,E |
| 1723 | 1723 | ML0AD TO H,L |
| 1724 | 1724 | ML0AD LSB |
| 1727 | 1727 | MLOAD-OLDHL GENS CARRY IF HL>MLOAD |
| 1731 | 1731 | CHECK FOR HL > MLOAD AND SET MLOAD IF SO |
| 1732 | 1732 | CARRY IF HL>MLOAD |
| 1734 | 1734 | CHANGE IT |
| 1737 | 1737 | CHECK FOR DISASSM PRESENT |
| 1739 | 1739 | ENTRY POINT |
| 1748 | 1748 | ONE EXPRESSION? |
| 1750 | 1750 | EXPRESSION TO H,L |
| 1752 | 1752 | SAVE IT FOR BELOW |
| 1754 | 1754 | OPEN INPUT FILE |
| 1757 | 1757 | CONTINUE IF FILE OPEN WENT OK |
| 1758 | 1758 | DISK FILE OPENED AHD INITIALIZED |
| 1760 | 1760 | CHECK FOR 'COM' FILE AND LOAD DIRECT TIL EOF |
| 1761 | 1761 | LOOK FOR 'COM' |
| 1764 | 1764 | COM FILE, LOAD WITH OFFSET GIVEN BY PUSHED REGISTER H |
| 1766 | 1766 | BASE OF TRANSIENT AREA |
| 1768 | 1768 | REG H HOLDS LOAD ADDRESS |
| 1769 | 1769 | LOAD COM FILE |
| 1770 | 1770 | SAVE DMA ADDRESS |
| 1772 | 1772 | READ SECTOR |
| 1775 | 1775 | SET FLAGS TO CHECK RETURN CODE |
| 1777 | 1777 | MOVE FROM 80H TO LOAD ADDRESS IN H,L |
| 1779 | 1779 | BUFFER SIZE |
| 1781 | 1781 | LOAD NEXT BYTE |
| 1783 | 1783 | STORE NEXT BYTE |
| 1787 | 1787 | LOADED, CHECK ADDRESS AGAINST MLOAD |
| 1792 | 1792 | OTHERWISE ASSUME HEX FILE IS BEING LOADED |
| 1794 | 1794 | NEXT CHAR TO ACCUM |
| 1795 | 1795 | PAST END OF TAPE? |
| 1798 | 1798 | LOOKING FOR START OF RECORD |
| 1800 | 1800 | START FOUND, CLEAR CHECKSUM |
| 1805 | 1805 | SAVE LENGTH |
| 1806 | 1806 | HIGH ORDER ADDR |
| 1808 | 1808 | LOW ORDER ADDR |
| 1811 | 1811 | BIASED ADDR IN H |
| 1812 | 1812 | CHECK FOR LAST RECORD |
| 1815 | 1815 | END OF TAPE, SET LOAD ADDRESS |
| 1818 | 1818 | SET PC VALUE |
| 1822 | 1822 | RECORD TYPE = 8 |
| 1824 | 1824 | LOAD RECORD |
| 1830 | 1830 | FOR ANOTHER BYTE |
| 1831 | 1831 | OTHERWISE AT END OF RECORD - CHECKSUM |
| 1833 | 1833 | FOR CHECKSUM CHECK |
| 1834 | 1834 | CHECK AGAINST MLOAD |
| 1836 | 1836 | CHECKSUM ERROR |
| 1837 | 1837 | FOR ANOTHER RECORD |
| 1839 | 1839 | READ ONE BYTE FROM BUFF AT WBP TO REG-A |
| 1840 | 1840 | COMPUTE CHECKSUM IN REG-D |
| 1845 | 1845 | GET ONE MORE CHARACTER |
| 1846 | 1846 | CONVERT TO HEX (OR ERROR) |
| 1848 | 1848 | SHIFT LEFT AND MASK |
| 1854 | 1854 | SAVE FOR A FEW STEPS |
| 1858 | 1858 | OTHERWISE SECOND NIBBLE OK, SO MERGE |
| 1859 | 1859 | PREVIOUS NIBBLE TO REG-B |
| 1861 | 1861 | VALUE IS NOW IN B TEMPORARILY |
| 1862 | 1862 | CHECKSUM |
| 1863 | 1863 | ACCUMULATING |
| 1864 | 1864 | BACK TO CS |
| 1865 | 1865 | ZERO FLAG REMAINS SET |
| 1866 | 1866 | BRING BYTE BACK TO ACCUMULATOR |
| 1868 | 1868 | BACK TO INITIAL STATE WITH ACCUM SET |
| 1870 | 1870 | LIFT HEAD ON DISK BEFORE RETURNING |
| 1873 | 1873 | 'NEXT' ' PC' |
| 1874 | 1874 | LOAD MESSAGE |
| 1877 | 1877 | LAST CHAR? |
| 1880 | 1880 | NEXT CHAR |
| 1891 | 1891 | NEXT PC |
| 1893 | 1893 | SET MEMORY COMMAND |
1896 2568 | 1896 2568 | SETS FLAGS |
| 1897 | 1897 | ONE EXPRESSION ONLY |
| 1899 | 1899 | START ADDRESS IS IN H,L |
| 1902 | 1902 | SAVE CURRENT ADDRESS |
1903 2416 | 1903 2416 | PRINTED |
1904 2467 | 1904 2467 | SEPARATOR |
| 1905 | 1905 | GET DATA |
| 1907 | 1907 | SAVE ADDRESS TO FILL |
| 1909 | 1909 | ANOTHER SEPARATOR |
| 1911 | 1911 | MAY BE EMPTY (NO CHANGE) |
| 1912 | 1912 | RESTORE ADDRESS TO FILL |
| 1917 | 1917 | DATA IS BEING CHANGED |
| 1918 | 1918 | SAVE ADDR TO FILL |
| 1919 | 1919 | FIRST CHARACTER ALREADY SCANNED |
| 1920 | 1920 | ONE ITEM? |
| 1921 | 1921 | MORE THAN ONE |
1922 1967 | 1922 1967 | VALUE TO H,L |
| 1924 | 1924 | HO ZERO? |
| 1925 | 1925 | DATA IS IN L |
| 1927 | 1927 | RESTORE DATA VALUE |
| 1930 | 1930 | NEXT ADDRESS READY |
| 1933 | 1933 | UNTRACE MODE |
| 1935 | 1935 | CLEAR TRACE MODE FLAG |
| 1938 | 1938 | START TRACE |
| 1940 | 1940 | SET TRACE MODE FLAG |
| 1945 | 1945 | CLEAR USERBRK |
| 1947 | 1947 | EXPRESSIONS WERE GIVEN, FORMS ARE |
| 1948 | 1948 | TX TRACE FOR X STEPS ACC = 1 |
| 1949 | 1949 | TX,BRK TRACE FOR X STEPS, CALL 'BRK' AT EACH STOP ACC=2 |
| 1950 | 1950 | T,BRK CALL 'BRK' ACC = 1, CY = 1 |
| 1955 | 1955 | CHECK FOR ZERO |
| 1958 | 1958 | RECALL NUMBER OF PARAMETERS |
| 1959 | 1959 | TRACE VALUE - 1 |
| 1960 | 1960 | H,L CONTAINS TRACE COUNT, SAVE IT FOR LATER |
| 1962 | 1962 | LOOK FOR BREAK ADDRESS |
| 1963 | 1963 | IF ONLY ONE SPECIFIED, THEN SKIP USERBRK |
| 1965 | 1965 | MUST BE TWO VALUES |
| 1966 | 1966 | MORE THAN TWO SPECIFIED |
| 1969 | 1969 | RECALL TRACE COUNT |
| 1973 | 1973 | STARTIHG STATE IS DISPLAYED |
| 1974 | 1974 | SETS BREAKPOINTS AND STARTS EXECUTION |
| 1976 | 1976 | EXAMINE AND MODIFY CPU REGISTERS |
| 1978 | 1978 | CR? |
1981 2419 | 1981 2419 | DISPLAY CPU STATE |
| 1984 | 1984 | REGISTER CHANGE OPERATION |
| 1985 | 1985 | B=0,C=PVAL (MAX REGISTER NUMBER) |
| 1986 | 1986 | LOOK FOR REGISTER MATCH IN RVECT |
| 1989 | 1989 | MATCH IN RVECT? |
| 1991 | 1991 | NEXT RVECT |
| 1992 | 1992 | INCREMENT COUNT |
| 1993 | 1993 | END OF RVECT? |
| 1998 | 1998 | MATCH IN RVECT, B HAS REGISTER NUMBER |
| 2000 | 2000 | ONLY CHARACTER? |
| 2003 | 2003 | WRITE CONTENTS, AND GET ANOTHER BUFFER |
2004 2539 | 2004 2539 | SAVE COUNT |
| 2005 | 2005 | NEW LINE FOR ELEMENT |
| 2006 | 2006 | ELEMENT WRITTEN |
| 2009 | 2009 | GET INPUT EXPRESSION |
| 2010 | 2010 | NONE? |
| 2012 | 2012 | MUST BE ONLY ONE |
| 2014 | 2014 | VALUE IS IN H,L |
| 2015 | 2015 | RECALL REGISTER NUMBER |
| 2016 | 2016 | CHECK CASES FOR FLAGS, REG-A, OR DOUBLE REGISTER |
| 2020 | 2020 | SETTING FLAGS, MUST BE ZERO OR ONE |
| 2027 | 2027 | 0 OR 1 IN H,L REGISTERS - GET CURRENT FLAGS AND MASK POSITION |
| 2029 | 2029 | SHIFT COUNT IN C, D,E ADDRESS FLAG POSITION |
| 2030 | 2030 | FLAGS TO H |
| 2031 | 2031 | SHIFT COUNT TO B |
| 2032 | 2032 | 111111110 IN ACCUM TO ROTATE |
| 2033 | 2033 | ROTATE REG-A LEFT |
| 2034 | 2034 | MASK ALL BUT ALTERED BIT |
| 2035 | 2035 | RESTORE SHIFT COUNT TO B |
| 2036 | 2036 | SAVE MASKED FLAGS |
| 2037 | 2037 | 0/1 TO LSB OF ACCUM |
| 2038 | 2038 | ROTATED TO CHANGED POSITION |
| 2039 | 2039 | RESTORE ALL OTHER FLAGS |
| 2040 | 2040 | BACK TO MACHINE STATE |
| 2043 | 2043 | LEFT ROTATE FOR FLAG SETTING |
| 2044 | 2044 | PATTERN IS IN REGISTER A, COUNT IN REGISTER B |
| 2046 | 2046 | ROTATE COMPLETE |
| 2047 | 2047 | END-AROUND ROTATE |
| 2050 | 2050 | MAY BE ACCUMULATOR CHANGE |
| 2052 | 2052 | MUST BE BYTE VALUE |
| 2056 | 2056 | GET BYTE TO STORE |
| 2057 | 2057 | A REG LOCATION IN MACHINE STATE |
| 2058 | 2058 | STORE IT AWAY |
| 2061 | 2061 | MUST BE DOUBLE REGISTER PAIR |
| 2062 | 2062 | SAVE VALUE |
| 2063 | 2063 | DOUBLE ADDRESS TO HL |
| 2064 | 2064 | VALUE TO D,E |
| 2067 | 2067 | ALTERED MACHINE STATE |
| 2070 | 2070 | DISK READ |
| 2075 | 2075 | READ DISK INPUT |
| 2078 | 2078 | GET NEXT DISK INPUT RECORD |
| 2080 | 2080 | READ CHARACTER |
| 2088 | 2088 | END OF FILE |
| 2094 | 2094 | NEXT BUFFER IN |
| 2101 | 2101 | BUFFER READ OK |
| 2102 | 2102 | STORE 00H |
| 2105 | 2105 | SET CARRY AND RETURN (END FILE) |
| 2113 | 2113 | ERROR IN COMMAND |
| 2119 | 2119 | SUBROUTINES |
| 2120 | 2120 | FILL COMMAND BUFFER AND SET POINTERS |
| 2121 | 2121 | GET BUFFER FUNCTION |
| 2122 | 2122 | START OF COMMAND 8UFFER |
| 2123 | 2123 | FILL BUFFER |
| 2131 | 2131 | PRINT CHARACTER TO CONSOLE |
| 2144 | 2144 | TRANSLATE TO UPPER CASE |
| 2145 | 2145 | RUBOUT? |
| 2147 | 2147 | UPPER CASE A |
| 2149 | 2149 | CLEAR UPPER CASE BIT |
| 2153 | 2153 | GET NEXT BUFFER CHARACTER FROM CONSOLE |
| 2154 | 2154 | SAVE FOR REUSE LOCALLY |
| 2159 | 2159 | RETURN UITH CR IF EXHAUSTED |
| 2160 | 2160 | CURLEN=CURLEN-1 |
| 2163 | 2163 | NEXTCOM=NEXTCOM+1 |
| 2164 | 2164 | UPDATED |
| 2167 | 2167 | RESTORE ENVIRONMENT |
| 2170 | 2170 | PRINT NIBBLE IN LO ACCUM |
| 2172 | 2172 | JUMP IF A-F |
| 2174 | 2174 | RET THRU PCHAR |
| 2180 | 2180 | SAVE A COPY FOR LO NIBBLE |
| 2185 | 2185 | MASK HO NIBBLE TO LO NIBBLE |
| 2187 | 2187 | RECALL BYTE |
| 2191 | 2191 | CARRIAGE RETURN LINE FEED |
| 2197 | 2197 | CHECK FOR BREAK KEY |
| 2209 | 2209 | SAME AS PADDR, EXCEPT PRINT VALUE IN D,E |
| 2212 | 2212 | PRINT THE ADDRESS VALUE IN H,L |
| 2218 | 2218 | PRINT GRAPHIC CHARACTER IN REG-A OR '.' IF NOT |
| 2227 | 2227 | COMPARE H,L AGAINST DISMAX, CARRY SET IF HL > DISMAX AND |
| 2232 | 2232 | REPLACE FOR ZERO TESTS LATER |
| 2238 | 2238 | CHECK FOR DELIMITER CHARACTER |
| 2246 | 2246 | CONVERT ACCUMULATOR TO PURE BINARY FROM EXTERNAL HEX |
| 2249 | 2249 | MUST BE 0-9 |
| 2252 | 2252 | MUST BE 0-15 |
| 2253 | 2253 | BAD HEX DIGIT |
| 2255 | 2255 | GET NEXT EXPRESSION VALUE TO H,L (POINTER IN D,E ASSUMED) |
| 2264 | 2264 | GET HEX VALUE TO D,E |
| 2273 | 2273 | HL=HL+HEX |
| 2276 | 2276 | DELIMITER? |
| 2281 | 2281 | STORE D,E TO H,L AND INCREMENT ADDRESS |
| 2288 | 2288 | COUNT NUMBER OF EXPN'S |
| 2292 | 2292 | SCAN EXPRESSIONS - CARRY SET IF ,B |
| 2293 | 2293 | ZERO SET IF NO EXPRESSIONS, A SET TO NUMBER OF EXPRESSIONS |
| 2294 | 2294 | H1 ORDER BIT SET IF ,B ALSO |
| 2296 | 2296 | ENTER HERE IF CHARACTER ALREADY SCANNED |
| 2298 | 2298 | ZERO EXPRESSIONS |
| 2299 | 2299 | READY TO FILL EXPRESSION LIST |
| 2300 | 2300 | END OF LINE? |
| 2303 | 2303 | NOT CR, MUST BE DIGIT OR COMMA |
| 2306 | 2306 | MARK AS COMMA |
| 2312 | 2312 | NOT CR OR COMMA |
| 2313 | 2313 | EXPRESSION TO D,E |
| 2315 | 2315 | STORE THE EXPRESSION AND INCREMENT H,L |
| 2321 | 2321 | SECOND DIGIT SCANNED |
| 2330 | 2330 | LOOK AT COUNT |
| 2331 | 2331 | LOAD COUNT TO ACC |
| 2332 | 2332 | , WITHOUT B? |
| 2334 | 2334 | READY TO EXTRACT EXPN'S |
| 2335 | 2335 | ZERO FLAG MAY BE SET |
| 2337 | 2337 | SET CARRY IF HO BIT SET (,B) |
| 2338 | 2338 | WITH FLAGS SET |
| 2341 | 2341 | SUBROUTINES FOR CPU STATE DISPLAY |
| 2342 | 2342 | SHIFT COMPUTATION FOR FLAG GIVEN BY REG-B |
| 2343 | 2343 | REG A CONTAINS FLAG UPON EXIT (UNSHIFTED) |
| 2344 | 2344 | REG C CONTAINS NUMBER OF SHIFTS REQUIRED+1 |
| 2345 | 2345 | REGS D,E CONTAIN ADDRESS OF FLAGS IN TEMPLATE |
| 2347 | 2347 | SHIFT TABLE |
| 2351 | 2351 | SHIFT COUNT TO C |
| 2352 | 2352 | ADDRESS OF FLAGS |
| 2353 | 2353 | TO REG A |
| 2354 | 2354 | SAVE ADDRESS |
| 2358 | 2358 | GET FLAG GIVEN BY REG-B TO REG-A AND MASK |
| 2359 | 2359 | BITS TO SHIFT IN REG-A |
| 2369 | 2369 | GET DOUBLE BYTE ADDRESS CORRESPONDING TO REG-A TO HL |
| 2370 | 2370 | NORMAL1ZE TO 0,1,... |
| 2371 | 2371 | INDEX TO STACKED VALUES |
2373 2628 | 2373 2628 | DOUBLE PRECISION |
| 2374 | 2374 | INDEXED INTO VECTOR |
| 2375 | 2375 | OFFSET TO E |
| 2378 | 2378 | HL HAS BASE ADDRESS |
| 2381 | 2381 | GET DOUBLE BYTE CORRESPONDING TO REG-A TO HL |
| 2382 | 2382 | ADDRESS OF ELT IN HL |
| 2386 | 2386 | BACK TO HL |
| 2389 | 2389 | DISPLAY CPU ELEMENT GIVEN BY COUNT IN REG-B, ADDRESS IN H,L |
| 2391 | 2391 | PRINT IT |
| 2392 | 2392 | GET COUNT |
| 2393 | 2393 | PAST A? |
| 2394 | 2394 | JMP IF NOT FLAG |
| 2396 | 2396 | DISPLAY FLAG |
| 2397 | 2397 | FLAG TO REG-A |
| 2401 | 2401 | NOT FLAG, DISPLAY = AND DATA |
| 2406 | 2406 | JUMP IF NOT REG-A |
| 2408 | 2408 | REGISTER A, DISPLAY BYTE VALUE |
| 2414 | 2414 | DOUBLE BYTE DISPLAY |
| 2420 | 2420 | REGISTER VECTOR |
| 2421 | 2421 | REGISTER COUNT |
| 2426 | 2426 | ELEMENT DISPLAYED |
| 2427 | 2427 | RVECT ADDRESS RESTORED |
| 2428 | 2428 | COUNT RESTORED |
| 2429 | 2429 | NEXT COUNT |
| 2430 | 2430 | NEXT REGISTER |
| 2431 | 2431 | LAST COUNT? |
| 2433 | 2433 | JMP IF PAST END |
| 2434 | 2434 | BLANK AFTER? |
| 2436 | 2436 | YES, BLANK AND GO AGAIN |
| 2440 | 2440 | READY TO SEND DECODED INSTRUCTION |
| 2443 | 2443 | COMPUTE BREAKPOINTS IN CASE OF TRACE |
| 2444 | 2444 | SAVE EXPRESSION COUNT - B,C AND D,E HAVE |
| 2445 | 2445 | SAVE BP ADDRESS |
| 2446 | 2446 | SAVE AUX BREAKPOINT |
| 2447 | 2447 | CHECK TO SEE IF DISASSEMBER IS HERE |
| 2448 | 2448 | DISPLAY HEX IF NOT |
| 2449 | 2449 | DISASSEMBLE CODE |
| 2450 | 2450 | GET CURRENT PC |
| 2451 | 2451 | SET DISASSM PC |
| 2452 | 2452 | PAGE MODE = 0FFH TO TRACE |
| 2457 | 2457 | DISPLAY HEX |
| 2458 | 2458 | POINT TO LAST TO WRITE |
| 2459 | 2459 | SAVE FOR COMPARE BELOW |
| 2460 | 2460 | START ADDRESS OF TRACE |
| 2461 | 2461 | GET OPCODE |
| 2463 | 2463 | READY FOR NEXT BYTE |
| 2464 | 2464 | ZERO SET IF ONE BYTE TO PRINT, CARRY IF NO MO |
| 2466 | 2466 | SAVE RESULT OF ZERO TEST |
| 2468 | 2468 | RECALL ZERO |
| 2469 | 2469 | ZERO TEST |
| 2471 | 2471 | DISPLAY DOUBLE BYTE |
| 2476 | 2476 | PRINT ADDRESS |
| 2479 | 2479 | PRINT BYTE VALUE |
| 2483 | 2483 | AUX BREAKPOINT |
| 2484 | 2484 | RESTORE BREAKPOINT |
2485 2547 | 2485 2547 | RESTORE COUNT |
| 2488 | 2488 | DATA VECTORS FOR CPU DISPLAY |
| 2490 | 2490 | C ZMEIABDHSP |
| 2492 | 2492 | LOCATION OF BC |
| 2493 | 2493 | LOCATION OF DE |
| 2494 | 2494 | LOCATION OF HL |
| 2495 | 2495 | LOCATION OF SP |
| 2496 | 2496 | LOCATION OF PC |
| 2497 | 2497 | FLGTAB ELEMENTS DETERMINE SHIFT COUNT TO SET/EXTRACT FLAGS |
| 2499 | 2499 | CY, ZER, SIGN, PAR, IDCY |
| 2501 | 2501 | CLEAR THE TRACE FLAG |
| 2506 | 2506 | ARRIVE HERE WHEN PROGRAMMED BREAK OCCURS |
| 2508 | 2508 | HL SAVED |
| 2509 | 2509 | RECALL RETURN ADDRESS |
| 2510 | 2510 | DECREMENT FOR RESTART |
| 2512 | 2512 | DAD SP BELOW DESTROYS CY, SO SAVE AND RECALL |
| 2514 | 2514 | BIAS SP 8Y 2 BECAUSE OF PUSH |
| 2516 | 2516 | RESTORE CY AND FLAGS |
| 2517 | 2517 | LOCAL STACK |
| 2518 | 2518 | SP SAVED |
| 2522 | 2522 | MACHINE STATE SAVED, CLEAR BREAK POINTS |
| 2523 | 2523 | CHECK FOR RST INSTRUCTION |
| 2524 | 2524 | OPCODE TO A |
| 2526 | 2526 | SAVE CONDITION CODES FOR LATER TEST |
| 2528 | 2528 | SAVE PLOC FOR LATER INCREMENT OR DECREMENT |
| 2531 | 2531 | CLEAR BREAKPOINTS WHICH ARE PENDING |
| 2534 | 2534 | SET TO ZERO BREAKS |
| 2536 | 2536 | ANY MORE? |
| 2540 | 2540 | ADDRESS OF BREAK |
| 2541 | 2541 | LOW ADDR |
| 2543 | 2543 | HIGH ADDR |
| 2545 | 2545 | INSTRUCTION |
| 2546 | 2546 | BACK TO PROGRAM |
| 2550 | 2550 | CLEARED, CONTINUE TRACING, OR STOP EXECUTION |
| 2551 | 2551 | RESTORE PLOC |
| 2552 | 2552 | RESTORE CONDITION FLAGS |
| 2553 | 2553 | BRANCH IF PROGRAMMED INTERRUPT |
| 2555 | 2555 | MUST BE FRONT PANEL INTERRUPT, CHECK IF IN BDOS |
| 2556 | 2556 | DON'T DECREMENT ON PANEL INTERRUPT |
| 2557 | 2557 | RESTORE TO NEXT LOGICAL INSTRUCTION |
| 2558 | 2558 | TO D,E FOR COMPARE |
| 2559 | 2559 | BASE OF DOS |
| 2560 | 2560 | CY IF BDOS >= PL0C |
| 2561 | 2561 | BRANCH IF PLOC <= BDOS |
| 2563 | 2563 | IN THE BDOS, DON'T BREAK UNTIL THE RETURN OCCURS |
| 2564 | 2564 | CLEAR TRACE FLAGS |
| 2565 | 2565 | TRAPPED RETLOC ON ENTRY TO DOS |
| 2566 | 2566 | TO D,E READY FOR BREAKPOINT |
| 2567 | 2567 | LOOKS LIKE G,8888 |
| 2569 | 2569 | SUBSEQUENT TEST FOR CY |
| 2570 | 2570 | START PROGRAM EXECUTION, WITH BREAKPOINT |
| 2572 | 2572 | NORMAL BREAKPOINT |
| 2579 | 2579 | TRACE IS ON |
| 2582 | 2582 | BREAK KEY DEPRESSED? |
| 2584 | 2584 | TRACE MODE T IF 0FFH |
| 2587 | 2587 | NOT IRACING, BUT MONITORING, SO SET BREAKPOINTS |
| 2591 | 2591 | TRACING AND MONITORING |
| 2592 | 2592 | STATE DISPLAYED, CHECK FOR BREAKPOINTS |
| 2593 | 2593 | STARTS EXECUTION |
| 2597 | 2597 | CLEAR USER BREAK ADDRESS |
| 2598 | 2598 | TRACE FLAGS GO TO ZERO |
| 2602 | 2602 | CHECK TO ENSURE DISASSEMBLER IS PRESENT |
| 2612 | 2612 | DETERMINE OPCODE CATEGORY - CODE IN REGISTER B |
| 2613 | 2613 | D,E CONTAIN DOUBLE PRECISION CATEGORY NUMBER ON RETURN |
| 2614 | 2614 | D=0,E=OPMAX |
| 2617 | 2617 | MASK TO A |
| 2618 | 2618 | MASK OPCODE FROM B |
| 2619 | 2619 | READY FOR COMPARE |
| 2620 | 2620 | SAME AFTER MASK? |
| 2621 | 2621 | READY FOR NEXT COMPARE |
| 2622 | 2622 | EXIT IF COMPARED OK |
| 2623 | 2623 | UP COUNT IF NOT MATCHED |
| 2624 | 2624 | FINISHED? |
| 2627 | 2627 | E IS CATEGORY NUMBER |
| 2631 | 2631 | FIND NEXT BREAK POINT ADDRESS |
| 2632 | 2632 | UPON RETURN, REGISTER A IS SETUP AS IF USER TYPED G,B1,B2 OR |
| 2633 | 2633 | G,B1 DEPENDING UPON OPERATOR CATEGORY. B,C CONTAINS SECOND BP |
| 2634 | 2634 | D,E CONTAINS PRIMARY BP, HL ADDRESS NEXT OPCODE BYTE |
| 2636 | 2636 | GET OPERATOR |
| 2637 | 2637 | HL ADDRESS BYTE FOLLOWING OPCODE |
| 2638 | 2638 | SAVE IT FOR LATER |
| 2639 | 2639 | DETERMINE OPERATOR CATEGORY |
| 2640 | 2640 | SAVE CATEGORY NUMBER |
| 2642 | 2642 | CATEGORY TABLE BASE |
| 2643 | 2643 | INXED |
| 2644 | 2644 | INXED*2 |
| 2645 | 2645 | LOW BYTE TO E |
| 2647 | 2647 | HIGH BYTE TO D |
| 2649 | 2649 | JUMP INTO TABLE |
| 2651 | 2651 | JUMP OPERATOR |
| 2652 | 2652 | JUMP CONDITIONAL |
| 2653 | 2653 | CALL OPERATOR (TREATED AS JMP) |
| 2654 | 2654 | CALL CONDITIONAL |
| 2655 | 2655 | RETURN FROM SUBROUTINE |
| 2656 | 2656 | RESTART |
| 2658 | 2658 | SINGLE PRECISION IMMEDIATE (2 BYTE) |
| 2659 | 2659 | ADI ... CPI |
| 2660 | 2660 | DOUBLE PRECISION IMMEDIATE (3 BYTES) |
| 2661 | 2661 | LHLD ... STA |
2662 2744 | 2662 2744 | RETURN CONDITIONAL |
| 2663 | 2663 | IN/OUT |
| 2664 | 2664 | NEXT DW MUST BE THE LAST IN THE SEQUENCE |
| 2665 | 2665 | SIMPLE OPERATOR (1 BYTE) |
| 2667 | 2667 | GET OPERAND FIELD, CHECK FOR BDOS |
| 2668 | 2668 | GET OPERAND ADDRESS TO D,E AND COMPARE WITH |
| 2669 | 2669 | TREAT AS SIMPLE OPERATOR IF NOT BDOS |
| 2670 | 2670 | OTHERWISE;TREAT AS A RETURN INSTRUCTION |
| 2672 | 2672 | ADDRESS AT STACKTOP TO D,E |
| 2673 | 2673 | TREAT AS SIMPLE OPERATOR |
| 2675 | 2675 | COMPARE D,E WITH BDOS ADDRESS, RETURN ZERO FLAG IF EQUAL |
| 2683 | 2683 | GET OPERAND ADDRESS AND COMPARE WITH BDOS |
| 2684 | 2684 | GET RETURN ADDRESS |
| 2685 | 2685 | GET OPERAND ADDRESS |
| 2690 | 2690 | UPDATED PC INTO STACK |
| 2691 | 2691 | RETURN ADDRESS TO STACK |
| 2692 | 2692 | RETURN THROUGH CBDOS UITH ZERO FLAG SET |
| 2694 | 2694 | GET RETURN ADDRESS FROM USER'S STACK TO D,E |
| 2701 | 2701 | CALL CONDITIONAL OPERATOR |
| 2702 | 2702 | GET OPERAND ADDRESS TO D,E / COMPARE WITH |
| 2704 | 2704 | NOT THE BDOS, BREAK AT OPERAND ADDRESS AND NEXT ADDRESS |
| 2705 | 2705 | NEXT ADDRESS TO B,C |
2706 2712 | 2706 2712 | BACK TO STACK |
| 2707 | 2707 | TWO BREAKPOINTS |
2708 2763 | 2708 2763 | RETURN FROM NBRK |
| 2710 | 2710 | BREAK ADDRESS AT NEXT LOCATION ONLY, WAIT FOR RETURN FROM |
| 2713 | 2713 | ONE BREAKPOINT ADDRESS |
| 2715 | 2715 | RESTART INSTRUCTION - CHECK FOR RST 7 |
| 2717 | 2717 | RESTART INSTRUCTION USED FOR SOFT INT |
| 2720 | 2720 | SOFT RST, NO BREAK POINT SINCE IT WILL OCCUR IMMEDIATELY |
| 2722 | 2722 | ZERO ACCUMULATOR |
| 2724 | 2724 | GET RESTART NUMBER |
| 2726 | 2726 | DOUBLE PRECISION BREAKPOINT TO D,E |
| 2731 | 2731 | HL VALUE TO D,E FOR BREAKPOINT |
| 2732 | 2732 | BDOS VALUE? |
| 2734 | 2734 | PCHL TO BDOS, USE RETURN ADDRESS |
| 2739 | 2739 | SIMPLE OPERATOR, USE STACKED PC |
| 2745 | 2745 | GET RETURN ADDRESS FROM STACK |
| 2746 | 2746 | B,C ALTERNATE LOCATION |
| 2747 | 2747 | REPLACE IT |
| 2749 | 2749 | TO SET FLAGS AND RETURN |
| 2751 | 2751 | DOUBLE PRECISION IMMEDIATE OPERATOR |
| 2753 | 2753 | INCREMENTED ONCE, DROP THRU FOR ANOTHER |
| 2754 | 2754 | COPY BACK |
| 2756 | 2756 | SINGLE PRECISION IMMEDIATE |
| 2761 | 2761 | END OPERATOR SCAN |
| 2762 | 2762 | SINGLE BREAKPOINT |
| 2764 | 2764 | COUNT UP FOR G,... |
| 2767 | 2767 | SAVE REGISTER STATE IN CASE USERBRK |
| 2771 | 2771 | NO USERBRK IF ZERO |
| 2773 | 2773 | SAVE BREAK POINT |
| 2774 | 2774 | SAVE AUX BREAK POINT |
| 2775 | 2775 | SAVE USERBRK ADDRESS FOR PCHL BELOW |
| 2776 | 2776 | USER BREAK OCCURS HERE, CALL USER ROUTINE AND CHECK RETURN |
| 2778 | 2778 | OPCODE CATEGORY IS IN C |
| 2780 | 2780 | LOCATION OF INSTRUCTION IN D,E |
| 2782 | 2782 | RETURN ADDRESS TO STACK, USERBRK TO H,L |
| 2784 | 2784 | RETURN FROM USER BREAK, CHECK REGISTER A |
| 2786 | 2786 | RESTORE BREAKPOINTS |
| 2789 | 2789 | ABORT THE OPERATION WITH A CONDITION |
| 2797 | 2797 | STOP EXECUTION |
| 2799 | 2799 | RECALL G, STATE |
| 2800 | 2800 | RECALL NEXT ADDRESS |
| 2805 | 2805 | OPCODE CATEGORY TABLES |
| 2807 | 2807 | 0 JMP |
| 2808 | 2808 | 1 JCOHD |
| 2809 | 2809 | 2 CALL |
| 2810 | 2810 | 3 CCOHD |
| 2811 | 2811 | 4 RET |
| 2812 | 2812 | 5 RST 0..7 |
| 2813 | 2813 | 6 PCHL |
| 2814 | 2814 | 7 MVI |
| 2815 | 2815 | 8 ADI...CPI |
| 2816 | 2816 | 9 LXI |
| 2817 | 2817 | 10 LHLD SHLD LDA S |
| 2818 | 2818 | 11 RCOND |
| 2819 | 2819 | IN OUT |
| 2822 | 2822 | CATEGORY NUMBER SAVED IN NBRK |
| 2823 | 2823 | USER BREAK ADDRESS IF NON-ZERO |
| 2824 | 2824 | RETURN ADDRESS TO USER FROM BDOS |
| 2825 | 2825 | TRACE MODE |
| 2826 | 2826 | TRACE COUNT |
| 2827 | 2827 | #BREAKS/BKPT1/DAT1/BKPT2/DAT2 |
| 2828 | 2828 | C0UNT+(EXP1)(EXP2)(EXP3) |
| 2829 | 2829 | DISPLAY LOCATION |
| 2830 | 2830 | MAX VALUE FOR CURRENT DISPLAY |
| 2831 | 2831 | TEMP I6 BIT LOCATION |
| 2832 | 2832 | NEXT LOCATION FROM COMMAND BUFFER |
| 2833 | 2833 | MAX COMMAND LENGTH |
| 2834 | 2834 | CURRENT COMMAND LENGTH |
| 2835 | 2835 | COMMAND BUFFER |
| 2836 | 2836 | MAX LOAD ADDRESS |
| 2837 | 2837 | STACK AREA |
| 2838 | 2838 | PC IN TEMPLATE |
| 2842 | 2842 | FLAGS |
| 2844 | 2844 | D,E |
| 2846 | 2846 | FOR RELOCATION BOUNDARY |